Учебники

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 (). Этот метод возвращает все элементы в соответствии с критериями. Вы можете использовать либо имя элемента (a, div, input) для выбора этих коллекций, либо имя конкретного класса элемента для выбора коллекции элементов того же класса.

Включить и исключить результаты с операторами

MooTools поддерживает различные операторы, используемые для уточнения вашего выбора. Вы можете использовать все эти операторы в методе getElements (). Каждый из этих операторов может использоваться для выбора элемента ввода по имени.

Посмотрите на следующую таблицу. Он определяет различные операторы, которые поддерживает MooTools.

оператор Описание пример
= (равно) Выберите элемент ввода по его имени. $ (‘body_wrap’). getElements (‘input [name = phone_number]’);
^ = (начинается с) Выберите элемент ввода, сравнивая его начальные буквы имени. $ (‘body_wrap’). getElements (‘input [name ^ = phone]’);
$ = (заканчивается на) Выберите элемент ввода, сравнив его конечные буквы имени. $ (‘body_wrap’). getElements (‘input [name $ = number]’);
! = (не равно) Отмените выбор элемента ввода по имени. $ (‘body_wrap’). getElements (‘input [name! = address]’);
* = (Содержит) Выберите элемент ввода, который содержит определенный шаблон букв. $ (‘body_wrap’). getElements (‘input [name * = phone]’);

Селекторы на основе порядка элементов

Селекторы MooTools следуют определенному порядку в выборе элементов. Селекторы в основном следуют двум порядкам; один четный, а другой странный.

Примечание. Этот селектор начинается с 0, поэтому первый элемент является четным.

Четный заказ

В этом порядке селектор выбирает элементы, расположенные в четном порядке. Используйте следующий синтаксис, чтобы выбрать все четные элементы div на вашей HTML-странице.

Синтаксис

// selects all even divs
$$('div:even');

Нечетный порядок

В этом порядке селектор выбирает элемент, размещенный в нечетном порядке. Используйте следующий синтаксис, чтобы выбрать все нечетные дивы на вашей HTML-странице.

Синтаксис

// selects all odd divs
$$('div:odd');

пример

В следующем примере показано, как работает селектор. Предположим, на веб-странице есть текстовое поле и список технологий. Если вы выберете одну технологию из списка, введя это имя в текстовое поле, в списке отобразятся отфильтрованные результаты, основанные на ваших данных. Это возможно с помощью селектора 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>

Вы получите следующий вывод —

Выход