MooTools - Селекторы
Селекторы используются для выбора элементов HTML. Когда бы вы ни захотели создать интерактивные веб-страницы, вам нужно выбрать некоторые данные или действие с этой веб-страницы. Селекторы помогают нам получать данные через HTML-запрос от элементов.
Базовый селектор ($)
В $является основным селектором в MooTools. Используя это, вы можете выбрать элемент DOM по его идентификатору. Например, предположим, что у вас есть элемент HTML (например, div) с именемbody_id.
<div id = "body_id">
</div>
Если вы хотите выбрать этот div, используйте следующий синтаксис -
Синтаксис
//selects the element with the ID 'body_id'
$('body_id');
getElement ()
getElement () - это метод, расширяющий базовый селектор ($). Это позволяет вам уточнить свой выбор, используя идентификатор элемента. getElement () выбирает только один элемент и вернет первый, если есть несколько вариантов. Вы также можете использовать имя класса, чтобы получить первое вхождение элемента. Но он не получит массив элементов.
Множественный селектор ($$)
$$ используется для выбора нескольких элементов и помещения этих нескольких элементов в массив. Из этого массива мы можем манипулировать, извлекать и переупорядочивать список разными способами. Взгляните на следующий синтаксис. Он определяет, как выбрать все элементы div из коллекции элементов HTML на веб-странице.
Синтаксис
<div>
<div>a div</div>
<span id = "id_name">a span</span>
</div>
Если вы хотите выбрать все div, используйте следующий синтаксис -
Синтаксис
//all divs in the page
$$('div');
Если вы хотите выбрать несколько div с одинаковым именем идентификатора, используйте следующий синтаксис -
Синтаксис
//selects the element with the id 'id_name' and all divs
$$('#id_name', 'div');
getElements ()
Метод getElements () аналогичен методу getElement (). Этот метод возвращает все элементы в соответствии с критериями. Вы можете использовать либоelement name (a, div, input) чтобы выбрать эти коллекции или конкретный элемент class name для выбора коллекции элементов одного класса.
Включать и исключать результаты с операторами
MooTools поддерживает различные операторы, используемые для уточнения выбора. Вы можете использовать все эти операторы в методе getElements (). Каждый из этих операторов может использоваться для выбора элемента ввода по имени.
Взгляните на следующую таблицу. Он определяет различные операторы, поддерживаемые MooTools.
Оператор | Описание | пример |
---|---|---|
= (равно) | Выберите элемент ввода по его имени. | $ ('body_wrap'). getElements ('input [имя = номер_телефона]'); |
^ = (начинается с) | Выберите элемент ввода, сравнив его начальные буквы имени. | $ ('body_wrap'). getElements ('ввод [имя ^ = телефон]'); |
$ = (заканчивается на) | Выберите элемент ввода, сравнив его конечные буквы имени. | $ ('body_wrap'). getElements ('ввод [имя $ = число]'); |
! = (не равно) | Отмените выбор элемента ввода по имени. | $ ('body_wrap'). getElements ('ввод [имя! = адрес]'); |
* = (Содержит) | Выберите элемент ввода, который содержит определенный буквенный узор. | $ ('body_wrap'). getElements ('ввод [имя * = телефон]'); |
Селекторы на основе порядка элементов
Селекторы MooTools следуют определенному порядку при выборе элементов. Селекторы в основном следуют двум порядкам; один четный, а другой нечетный.
Note - Этот селектор начинается с 0, поэтому первый элемент четный.
Даже порядок
В этом порядке селектор выбирает элементы, которые расположены в четном порядке. Используйте следующий синтаксис, чтобы выбрать все четные div на вашей HTML-странице.
Syntax
// selects all even divs
$$('div:even');
Нечетный порядок
В этом порядке селектор выбирает элементы, размещенные в нечетном порядке. Используйте следующий синтаксис, чтобы выбрать все нечетные div на вашей HTML-странице.
Syntax
// selects all odd divs
$$('div:odd');
Example
В следующем примере показано, как работает селектор. Предположим, на веб-странице есть текстовое поле и список технологий. Если вы выберете одну технологию из списка, введя это имя в текстовое поле, то в списке будут показаны отфильтрованные результаты на основе ваших введенных данных. Это возможно с помощью селектора MooTools. Используя селектор, мы можем добавить событие в текстовое поле. Слушатель событий выберет данные из текстового поля и проверит их из списка. Если он есть в списке, то в списке отображаются отфильтрованные результаты. Взгляните на следующий код.
<html>
<head>
<script type = "text/javascript" src = "MooTools-Core-1.6.0.js"></script>
<script type = "text/javascript" src = "MooTools-More-1.6.0.js"></script>
<script type = "text/javascript">
window.addEvent('domready',function(){
var input = $('filter');
// set the title attribute of every element
// to it's text in lowercase
$$('ul > li').each(function(item){
item.set('title', item.get('text').toLowerCase());
});
// the function we'll call when the user types
var filterList = function(){
var value = input.value.toLowerCase();
$$('li').setStyle('display','none');
// check the title attribute if it contains whatever the user is typing
$$('ul > li[title*=' + value + ']').setStyle('display','');
};
// make it happen
input.addEvent('keyup', filterList);
});
</script>
</head>
<body>
<p><input id = "filter" type = "text" /></p>
<ul>
<li>C</li>
<li>Cpp</li>
<li>Java</li>
<li>JavaScript</li>
<li>Hadoop</li>
<li>Hive</li>
<li>CouchDB</li>
</ul>
</body>
</html>
Вы получите следующий вывод -
Output