JavaScript селекторы

JavaScript, как и CSS, обладает функционалом, позволяющим обращаться к HTML элементам для преобразования контента страниц. В CSS это достигается путём написания селекторов. В JavaScript существует несколько способов организации данного функционала, и вот один из них:

var primaryHeadings = document.getElementsByTagName(‘h1’);

Данный код извлекает все заголовки h1 и, грубо говоря, помещает их в переменную primaryHeadings. Если на странице присутствует несколько заголовков, то все они будут помещены в массив.

var ou812 = document.getElementById(‘eddie’);

Данный код выбирает элемент с id = “eddie”.

var guitars = document.getElementsByClassName(‘axes’);

Также мы можем выбирать элементы по названию их классов.

Добавим немного Sizzle

Различного рода JavaScript фрэймворки, предоставляют собственные возможности составления селекторов. Одним из самых успешных был Sizzle, который в последствии преобразился в jQuery. В отличие от своего потомка, Sizzle мог только работать с DOM и манипулировать им. Если вам не нужен весь остальной функционал jQuery, то и сегодня вы можете скачать Sizzle как отдельную библиотеку.

С развитием данных библиотек написание селекторов значительно сократилось и преобразилось:

Данный код извлекает html элемент с id=”dave” и позволяет работать с его css стилями.

Sizzle — это не единственная JavaScript библиотека для манипуляции html кодом. Также существуют и другие варианты, к примеру rangy. Однако, по моему мнению, всё выше перечисленное устарело перед тем, что ждёт вас дальше в этой статье.

Новый уровень JavaScript

Многие разработчики настолько часто начали пользоваться jQuery, что даже не заметили кардинальных изменений в самом JavaScript.

“JavaScript Selector API” — это официальная часть спецификации HTML5, она может быть использована и при написании XHTML страниц. Новый синтаксис очень прост:

document.querySelector(‘#eddie’)

Данный код является абсолютно эквивалентным document.getElementById(‘eddie’). Не впечатляет? Что насчёт этого:

document.querySelector(‘#eddie h1 + p’)

Новый функционал позволяет манипулировать DOM-ом, используя сложные CSS выражения.

Метод querySelector извлекает только первый попавшийся элемент. Для извлечения всех необходимо воспользоваться querySelectorAll:

var hiFrets = document.querySelectorAll(‘table#frets tr:nth-child(3)’)

Данный код извлекает каждую третью строку из таблицы с id=”frets”.

Несколько очень важных моментов

Существует несколько ограничений, о которых вы должны знать, если будете использовать метод querySelector / All:

Не все браузеры поддерживают новый функционал. Если вам важно, чтоб код работал на IE6-7, то лучше пользоваться библиотеками, которые могут манипулировать DOM-ом: Sizzle или jQuery.

Селекторы должны быть составлены очень аккуратно, иначе браузеры их не поймут, и выше перечисленные методы вернут null. В общем, будьте очень осторожны, особенно при использовании селекторов CSS3.

В отличии от getElementsByTagName, метод querySelectorAll возвращает статический список извлечённых элементов в том виде, в которым они находятся на странице в данный момент времени. Это значит, что при внесении каких-либо динамических изменений в код (добавление, удаление элементов через JavaScript), необходимо будет заново воспользоваться методом querySelectorAll.

Попробуйте новый функционал, чтоб избавиться от необходимости загружать различного рода библиотеки.

Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/dYkS2C0tYQI/lessons.php

Источник: lred.ru

Оцените статью
новости для мужчин