jQuery — Работа с набором элементов
- Главная
- Туториалы
- Веб-программирование
- jQuery
jQuery позволяет работать с набором элементов страницы в виде объектов.
Перемещения по дереву DOM
Описание | |
. children() | Находит все дочерние элементы у выбранных элементов |
.closest() | Находит ближайший, соответствующий заданному селектору элемент, из числа следующих: выбранный элемент, его родитель, его прародитель, и так далее, до начало дерева DOM. |
.find() | Находит элементы по заданному селектору, внутри выбранных элементов |
.next() | Находит элементы, которые лежат непосредственно после каждого из выбранных элементов |
.nextAll() | Находит элементы, которые лежат после каждого из выбранных элементов |
.nextUntil() | Находит элементы, которые лежат после каждого из выбранных, но не дальше элемента, удовлетворяющего заданному селектору |
.offsetParent() | Возвращает ближайшего предка c позиционированием, отличным от static |
. parent() | Находит родительские элементы у всех выбранных элементов |
.parents() | Находит всех предков у выбранных элементов, т.е. не только прямых родителей, но и прародителей, прапрародителей и так далее, до начало дерева DOM |
.parentsUntil() | Находит предков, как и .parents(), но прекращает поиск перед элементом, удовлетворяющим заданному селектору |
.prev() | Находит элементы, которые лежат непосредственно перед каждым из выбранных элементов |
.prevAll() | Находит элементы, которые лежат перед каждым из выбранных элементов |
.prevUntil() | Находит элементы, которые лежат перед каждым из выбранных, но не дальше элемента, соответствующего заданному селектору |
.siblings() | Находит все соседние элементы |
Фильтрация набора
Название | Описание |
. eq() | Возвращает элемент, идущий под заданным номером в наборе выбранных элементов |
.filter() | Фильтрует набор выбранных элементов с помощью заданного селектора или функции |
.first() | Возвращает первый элемент в наборе |
.has() | Фильтрует набор выбранных элементов, оставляя те, которые имеют потомков, соответствующих селектору |
.is() | Проверяет, содержится ли в наборе, хотя бы один элемент удовлетворяющий заданному селектору |
.last() | Возвращает последний элемент в наборе |
.not() | Возвращает элементы, не соответствующие заданным условиям |
.slice() | Возвращает элементы с индексами из определенной области |
Обход набора
Название | Описание |
. each() | Вызывает заданную функцию для каждого элемента набора |
.map() | Вызывает заданную функцию для каждого элемента набора, и в итоге создает новый набор, составленный из значений, возвращенных этой функцией |
Другие методы
Название | Описание |
.add() | Добавляет заданные элементы в набор. |
.andSelf() | Добавляет элементы из предыдущего набора, к текущему (речь идет об одной цепочке методов). |
.contents() | Находит все дочерние элементы у выбранных элементов. В результат, помимо элементов, включается и текст. |
.end() | Возвращает предыдущий набор элементов в текущей цепочке методов. |
Руководство по JavaScript
Руководство по JavaScriptПоследнее обновление: 20. 11.2022
Глава 1. Введение в JavaScript
Что такое JavaScript
Первая программа на JavaScript
Выполнение кода javascript
Подключение внешнего файла JavaScript
Консоль браузера и console.log
Глава 2. Основы javascript
Переменные и константы
Типы данных
Операции
Условные операторы ?: и ??
Преобразование данных
Введение в массивы
Условные конструкции
Циклы
Глава 3. Функциональное программирование
Функции
Параметры функции
Результат функции
Область видимости переменных
Замыкания и функции IIFE
Паттерн Модуль
Рекурсивные функции
Переопределение функций
Hoisting
Передача параметров по значению и по ссылке
Стрелочные функции
Глава 4. Объектно-ориентированное программирование
Объекты
Вложенные объекты и массивы в объектах
Копирование и сравнение объектов
Проверка наличия и перебор методов и свойств
Объекты в функциях
Конструкторы объектов
Расширение объектов. Prototype
Инкапсуляция
Функция как объект. Методы call и apply
Наследование
Ключевое слово this
Деструктуризация
Оператор ?.
Глава 5. ООП. Классы
Классы
Приватные поля и методы
Статические поля и методы
Свойства и методы доступа
Наследование
Глава 6. Массивы
Создание массива и объект Array
Массивы и spread-оператор
Операции с массивами
Наследование массивов
Глава 7. Строки
Строки и объект String
Шаблоны строк
Объект RegExp. Регулярные выражения
Регулярные выражения в методах String
Синтаксис регулярных выражений
Группы в регулярных выражениях
Глава 8. Встроенные объекты
Объект Date. Работа с датами
Объект Math. Математические операции
Объект Number
Символы
Proxy
Глава 9. Обработка ошибок
Конструкция try. .catch..finally
Генерация ошибок и оператор throw
Типы ошибок
Глава 10. Работа с браузером и BOM
- Browser Object Model и объект window
Управление окнами
История браузера. Объект history
Объект location
Объект navigator
Таймеры
Глава 11. Работа с DOM
Введение в DOM
Объект document. Поиск элементов
Свойства объекта document
Объект Node. Навигация по DOM
Создание, добавление и удаление элементов веб-станицы
Объект Element. Управление элементами
Изменение стиля элементов
Создание своего элемента HTML
Глава 12. События
Введение в обработку событий
Обработчики событий
Объект Event
Распространение событий
События мыши
События клавиатуры
Глава 13. Работа с формами
Формы и их элементы
Кнопки
Текстовые поля
Флажки и переключатели
Список select
Глава 14. JSON
Введение в JSON
Глава 15. Хранение данных
Куки
Web Storage
Глава 16. Коллекции и итераторы
Итераторы
Генераторы
Множества Set
Map
WeakSet
WeakMap
Глава 17. Promise, async и await
Введение в промисы
Получение результата операции в Promise
Обработка ошибок в Promise
Создание цепочек промисовх
Функции Promise.all, Promise.allSettled, Promise.any и Promise.race
Async и await
Асинхронные итераторы
Асинхронные генераторы
Глава 18. Ajax
Объект XMLHttpRequest
Отправка данных
Promise в Ajax-запросах
Глава 19. Локализация
Локализация списков и Intl.ListFormat
Локализация дат и времени
Локализация названий и Intl.DisplayNames
Форматирование чисел и Intl.NumberFormat
Глава 20. Модули
Введение в модули
Импорт модуля
Экспорт и импорт компонентов модулей
Экспорт и импорт по умолчанию
Использование псевдонимов при экспорте и импорте
Динамическая загрузка модулей
Глава 21. Fetch API
Функция fetch
Объект Response и его свойства
Получение данных из ответа
Настройка параметров запроса. Отправка данных
Создание клиента для REST API
Глава 22. Остальные статьи
JavaScript в CSS
YooMoney:
410011174743222
Перевод на карту
Номер карты:
4048415020898850
jquery — преимущества запуска циклов JavaScript for с 0 или просто традиционных?
В современных языках вы можете думать об этом как о традиции. Однако есть причина, по которой это было сделано так изначально, и эта причина заключалась в том, чтобы сохранить память.
( EDIT : Поскольку 2 человека уже полностью щелкнули, я понимаю, что массивы могли быть реализованы по-разному в C. Факт остается фактом, что они не были. Это действительно просто указатели в C, а C просто так оказывается предком большинства современных языков, которые начинаются с 0. — Могут быть и другие причины начинать с 0, я просто предоставляю ту, которая связана с тем, как массивы работают в предке языков стиля C… язык программирования C. Не Фортран, а C. Спасибо за понимание.)
Крестный отец языков программирования общего назначения, C (и, соответственно, C++), рассматривает определенные переменные как адреса памяти, называемые указателями . В наши дни управление памятью остается за средой выполнения, а не за программистом, поэтому вы, вероятно, никогда не слышали об указателях. Но когда вы используете C, когда вы используете переменные, вы действительно имеете дело с памятью менее абстрактным образом.
Это может показаться слишком сложным, если вы новичок в программировании, но, надеюсь, это будет иметь смысл.
Указатель — это своего рода переменная, в которой хранится адрес памяти. В C вы можете работать с «обычными» переменными, но они ограничены рядом способов… вам всегда приходится работать с так называемыми указателями, которые вы можете считать переменными другого типа, которые указывают на место в памяти, а не фактическое содержание этого места в памяти. Я пропущу обсуждение того, почему это так, просто помните, что указатели — это переменные, содержащие адреса памяти, которые затем используются для указания на данные… в отличие от хранения самих данных. (Говорят, что «нормальные» переменные расположены на стек , но говорят, что указатели расположены в куче — не берите в голову, если это вас смущает.)
В C, когда вы используете массив, то, что вы действительно имеете, — это адрес памяти (указатель), указывающий начало массива. Сам указатель не содержит содержимого, он даже не содержит длину массива, а только адрес памяти его начальной точки. Но когда вы выделяете эту память, вы должны точно указать размер массива, чтобы компилятор знал, сколько памяти нужно выделить.
Давайте представим массив на C с именем some_array .
some_array определит расположение в памяти массива . Сам массив представляет собой не что иное, как последовательность зарезервированного адресного пространства памяти, где, как ожидается, будет находиться содержимое some_array . Когда мы создаем этот массив, мы даем ему имя (some_array) и сообщаем, сколько элементов в массиве нам нужно. (В C/C++ массивы не расширяются по запросу, вы должны заранее объявить их размер или иным образом использовать более сложные классы, такие как списки или векторы).
Но теперь нам нужна вторая запись в нашем массиве. Как нам понять, где он? У нас есть только адрес памяти, указатель! Это не говорит нам, где вторая запись, а только то, где начинается первая запись!
Но что мы знаем (в C), так это размер типа переменной нашего массива. .. который также должен быть явно указан при создании массива. Например, если у нас есть целое число, допустим, оно имеет размер 16 бит.
Затем мы можем узнать местоположение второй записи, зная местоположение первой записи (которая является началом массива), а затем мы можем просто добавить размер каждой записи (размер целого числа)!
Другими словами;
location_of_second_entry = location_of_first_entry + (size_of_integer).
А третья запись? Это будет:
местоположение_третьей_записи = местоположение_первой_записи + (2 * размер_целого_числа).
Как вы могли заметить, местоположение в физической памяти всегда будет следующим:
location_of_any_entry = location_of_first_entry + (iterator * size_of_integer)
Итак, если вам нужен первый элемент, итератор будет равен 0. Вот почему изначально итераторы начинались с 0, потому что переменные, используемые для обозначения массивов, обычно были просто адресами памяти.
Так вот, не будет иметь , чтобы работать таким образом. Вы можете начать с 1 в C, но тогда вы будете тратить адресное пространство между первой записью и второй, потому что «location_of_first_entry» никогда не будет использоваться для хранения каких-либо данных.
Управление памятью обрабатывается совершенно по-другому в более поздних средах выполнения и языках, поэтому это не является техническим требованием для более высокоуровневых языков программирования (таких как PHP, Python, Perl), но это традиция, которая сохранилась, потому что было время, когда программисты должны были обращаться с памятью с некоторым уважением.
В языках более высокого уровня вопрос о том, начинать ли с 0 или с 1, в основном зависит от того, насколько программисты хотят спорить об этом. Итак, в конце концов, для 2011 года и языков программирования сверхвысокого уровня это просто традиция. — Судя по всему, я полный идиот, который ничего ни о чем не знает и несет полную чушь в ущерб человечеству и миру, каким мы его знаем. Ну, на самом деле, я просто не принял во внимание современные дебаты и поэтому заслужил гнев тех, кто милостиво знает лучше. Оказывается, вокруг этого ведутся совершенно рациональные дебаты, относящиеся к современным языкам, независимо от исторических причин, лежащих в основе языков C-стиля. Таким образом, хотя историческая причина того, что языки стиля C берут его от C, верна, как выясняется, существует и более глубокая дискуссия.
( EDIT : Поскольку кто-то упомянул об этом, это было сделано по-другому, начиная с 1, в других языках программирования низкого уровня, таких как Fortran. Причина, по которой это было сделано в C, заключается в том, как массивы реализованы в C. Они могли бы реализовать их по-другому, и в этом случае он мог бы начать с 1 без потери памяти, но они этого не сделали.)
Fidgetech — 1 — Введение в программирование (с jQuery)
Fidgetech — 1 — Введение в программирование (с jQuery)- Fidgetech — 1 — Введение в программирование (с jQuery)
- (1 неделя)
1.1 — Git, HTML и CSS
- Выходные 1.1.0.1 — Цели Git, HTML и CSS
- Понедельник 1. 1.1.1 — Практика: настройка проекта Git
- Понедельник 1.1.1.2 — Практика: отслеживание изменений с помощью Git
- Понедельник 1.1.1.3 — Практика: удаленные репозитории GitHub
- Понедельник 1.1.1.4 — Практика: командная строка Git
- Понедельник 1.1.1.5 — Уценка
- Понедельник 1.1.1.6 — Практика: уценка
- Понедельник 1.1.1.7 — Язык гипертекстовой разметки (HTML)
- Понедельник 1.1.1.8 — Отступы и интервалы HTML
- Понедельник 1.1.1.9 — Практика: отступы и интервалы
- Понедельник 1.1.1.10 — Элементы блока HTML
- Понедельник 1.1.1.11 — Блочные элементы HTML, часть 2
- Понедельник 1.1.1.12 — Практика: Блочные элементы
- Понедельник 1.1.1.13 — Встроенные элементы HTML
- Понедельник 1.1.1.14 — Практика: встроенные элементы
- Понедельник 1.1.1.15 — Написание файла README
- Вторник 1.1.2.1 — Практика: README
- Вторник 1. 1.2.2 — Принять трейлеры и вклады Github
- Вторник 1.1.2.3 — CSS: стилизация текста
- Вторник 1.1.2.4 — Отладка HTML и CSS
- Вторник 1.1.2.5 — Практика: стилизация текста
- Вторник 1.1.2.6 — Страницы GitHub
- Вторник 1.1.2.7 — Практика: страницы GitHub
- Вторник 1.1.2.8 — Ветвление Git
- Вторник 1.1.2.9 — Слияние Git
- Вторник 1.1.2.10 — Практика: ветвление и слияние
- Среда 1.1.3.1 — Стилизация с помощью классов
- Среда 1.1.3.2 — Практика: стилизация с помощью классов
- Среда 1.1.3.3 — Разделы и интервалы
- Среда 1.1.3.4 — Практика: Divs и Span
- Среда 1.1.3.5 — Использование поплавков
- Среда 1.1.3.6 — Практика: использование поплавков
- Среда 1.1.3.7 — Блочная модель
- Среда 1.1.3.8 — Практика: блочная модель
- Среда 1.1.3.9 — Центрирование элементов и изображений
- Среда 1. 1.3.10 — Каскадирование
- Среда 1.1.3.11 — Практика: каскадирование
- Среда 1.1.3.12 — Классы и идентификаторы
- Среда 1.1.3.13 — Медиа-запросы и адаптивный дизайн
- Среда 1.1.3.14 — Практика: Медиа-запросы и адаптивный дизайн
- Четверг 1.1.4.1 — Практика: закусочная CSS
- Четверг 1.1.4.2 — Введение в Bootstrap
- Четверг 1.1.4.3 — Загрузка и установка Bootstrap
- Четверг 1.1.4.4 — Основные элементы начальной загрузки
- Четверг 1.1.4.5 — Практика: установка и реализация Bootstrap
- Четверг 1.1.4.6 — Система сетки Bootstrap
- Четверг 1.1.4.7 — Настройка стилей с помощью Bootstrap
- Четверг 1.1.4.8 — Код VS с HTML
- Четверг 1.1.4.9 — Практика: сетка, пользовательские стили и многое другое
- Четверг 1.1.4.10 — Bootstrap: навигация по документации
- Четверг 1.1.4.11 — Практика: воссоздание сайта с помощью Bootstrap
- Пятница 1. 1.5.1 — Независимый проект Git, HTML и CSS
- (Неделя 2)
1.2 — JavaScript и jQuery
- Выходные 1.2.0.1 — Цели JavaScript и Jquery
- Выходные 1.2.0.2 — Добро пожаловать в JavaScript и JQuery
- Выходные 1.2.0.3 — Документация и ресурсы
- Выходные 1.2.0.4 — Примитивы JavaScript
- Выходные 1.2.0.5 — Арифметика
- Выходные 1.2.0.6 — Практика: арифметика
- Выходные 1.2.0.7 — Переменные JavaScript
- Выходные 1.2.0.8 — Практика: переменные
- Выходные 1.2.0.9 — Строки
- Выходные 1.2.0.10 — Практика: струны
- Выходные 1.2.0.11 — Функции и методы
- Выходные 1.2.0.12 — Практика: Методы
- Выходные 1.2.0.13 — Строковые методы
- Выходные 1.2.0.14 — Практика: строковые методы
- Выходные 1.2.0.15 — Операторы присваивания и сравнения
- Выходные 1.2.0.16 — Практика: операторы присваивания и сравнения
- Выходные 1. 2.0.17 — Типы данных
- Выходные 1.2.0.18 — Практика: типы данных
- Понедельник 1.2.1.1 — Функции
- Понедельник 1.2.1.2 — Практика: Функции
- Понедельник 1.2.1.3 — Разбор целых чисел
- Понедельник 1.2.1.4 — Запись функций
- Понедельник 1.2.1.5 — JSFiddle
- Понедельник 1.2.1.6 — Практика: Написание функций
- Понедельник 1.2.1.7 — Бизнес-логика и логика пользовательского интерфейса
- Понедельник 1.2.1.8 — Бизнес-логика калькулятора
- Понедельник 1.2.1.9 — Практика: бизнес-логика калькулятора
- Понедельник 1.2.1.10 — Введение в jQuery
- Понедельник 1.2.1.11 — Практика: Написание бонусной функции
- Вторник 1.2.2.1 — Простые эффекты
- Вторник 1.2.2.2 — Практика: эффекты jQuery
- Вторник 1.2.2.3 — jQuery: добавление и удаление классов
- Вторник 1.2.2.4 — Практика: добавление и удаление классов
- Вторник 1. 2.2.5 — Практика: Дополнительные основы jQuery
- Вторник 1.2.2.6 — Управление DOM и обход
- Вторник 1.2.2.7 — Практика: манипулирование и обход DOM
- Вторник 1.2.2.8 — Переменная область видимости
- Вторник 1.2.2.9 — Формы
- Среда 1.2.3.1 — Практика: Формы
- Среда 1.2.3.2 — Отладка в JavaScript: чтение ошибок консоли
- Среда 1.2.3.3 — Отладка в JavaScript: пауза в исключениях
- Среда 1.2.3.4 — Отладка в JavaScript: использование console.log()
- Среда 1.2.3.5 — Отладка в JavaScript: использование отладчика и точек останова
- Среда 1.2.3.6 — Пользовательский интерфейс калькулятора
- Среда 1.2.3.7 — Практика: пользовательский интерфейс калькулятора
- Среда 1.2.3.8 — Типы ввода формы
- Среда 1.2.3.9- Практика: типы ввода формы
- Среда 1.2.3.10 — Ветвление
- Четверг 1.2.4.1 — Практика: ветвление
- Четверг 1. 2.4.2 — Больше ветвлений
- Четверг 1.2.4.3 — Практика: больше ветвлений
- Четверг 1.2.4.4 — Область действия функции по сравнению с областью действия блока
- Четверг 1.2.4.5 — Git: переписывание истории с помощью Rebase
- Четверг 1.2.4.6 — Практика: трекер треугольников
- Четверг 1.2.4.7 — Калькулятор с ответвлением
- Четверг 1.2.4.8 — JavaScript-эквиваленты jQuery
- Четверг 1.2.4.9 — Практика: калькулятор и многое другое
- Пятница 1.2.5.1 — Независимый проект JavaScript и jQuery
- (3 неделя)
1.3 — Массивы и циклы
- Выходные 1.3.0.1 — Цели массивов и циклов
- Выходные 1.3.0.2 — Основы прототипов
- Выходные 1.3.0.3 — Введение в массивы
- Выходные 1.3.0.4 — Обозначение скобок
- Выходные 1.3.0.5 — Методы массива
- Выходные 1.3.0.6 — Сравнение и клонирование массивов
- Понедельник 1.3.1.1 — Практика: Массивы JavaScript
- Понедельник 1. 3.1.2 — Введение в создание циклов
- Понедельник 1.3.1.3 — Циклы forEach
- Понедельник 1.3.1.4 — Практика: зацикливание
- Понедельник 1.3.1.5 — Практика: циклы forEach
- Понедельник 1.3.1.6 — Выявление и предотвращение микроагрессии
- Вторник 1.3.2.1 — Создание текстового анализатора
- Вторник 1.3.2.2 — Разработка через тестирование
- Вторник 1.3.2.3 — Разработка через тестирование: часть 2
- Вторник 1.3.2.4 — Разделение логики
- Вторник 1.3.2.5 — Разделение логики: Часть 2
- Вторник 1.3.2.6 — Разделение логики: часть 3
- Вторник 1.3.2.7 — СУШКА и рефакторинг кода
- Вторник 1.3.2.8 — Анализатор текста: Практика
- Среда 1.3.3.1 — Цикл for
- Среда 1.3.3.2 — Когда использовать для
- Среда 1.3.3.3 — для циклов с анализатором текста
- Среда 1.3.3.4 — Практика: свиная латынь
- Среда 1.3.3.5 — Дальнейшее изучение: введение в регулярные выражения
- Среда Дальнейшее изучение: регулярные выражения с Text Analyzer
- Четверг 1.