YASS

YASS: Yet Another cSS selector

The fastest CSS selectors JavaScript implementation in the world!

Документация

YASS — это небольшая JavaScript-библиотека для выбора элементов из DOM-дерева по CSS-селекторам. Она поддерживает некоторые наиболее распространенные комбинации CSS-селекторов, которые приведены в CSS3-спецификации.

Параметры функции _ или yass

Основная функция для выбора элементов получает на вход 3 параметра: сам CSS-селектор, корневой элемент для выборки (по умолчанию берется document) и параметр noCache для сброса кэша по заданному селектору (кэщ будет автоматически сброшен для современных браузеров, но для IE его нужно сбрасывать вручную после изменений в HTML).

Более подробно примеры использования приведены в соответствующей секции.

Поддерживаемые селекторы:

Все допустимые комбинации этих селекторов будут работать через вызов функции _(), в том числе влючая наборы селекторов, разделенных запятой ",". Возвращаемое значение будет либо одним узлом DOM-дерева, либо набором таких узлов. Если ни один элемент не соответстует заданному селектору, то YASS вернет null.

Неподдерживаемые селекторы:

Некоторые селекторы пока еще не поддерживаются. Вполне возможно, что ситуация изменится с выходом новых версий YASS.

API для модулей

YASS является весьма гибкой библиотекой для подключения совершенно произвольных внешних JS-файлов как модулей. Например, можно динамически полностью загрузить Prototype или jQuery со всеми плагинами сразу после загрузки ядра YASS. Для этого нужно написать следующий код:

<script src="yass.js" type="text/javascript" class="yass-module-jquery"></script>

В этом примере:

  1. YASS загрузится обычным образом.
  2. Далее загрузится файл yass.jquery.js, который расположен там же где и исходный HTML-файл. И произойдет это по событию DOM ready.

Также можно загрузить любой внешний файл как модуль YASS. Например:

<script src="yass.js" type="text/javascript" class="yass-module-http://yass.webo.in/airee_ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>

В конце кода для каждого модуля можно:

Дополнительные примеры использования данной логики можно подчерпнуть из онлайн-демонстрации загрузки дерева модулей.