Mootools-selectors

提供:Dev Guides
移動先:案内検索

MooTools-セレクター

セレクターは、HTML要素を選択するために使用されます。 インタラクティブなWebページを作成する場合は、そのWebページから何らかのデータまたはアクションを選択する必要があります。 セレクターは、要素からのHTML要求を介してデータを受信するのに役立ちます。

基本セレクター($)

$ *は、MooToolsの基本的なセレクターです。 これを使用して、IDでDOM要素を選択できます。 たとえば、 *body_id という名前のHTML要素(divなど)があるとします。

<div id = "body_id">

</div>

このdivを選択したい場合は、次の構文を使用します-

構文

//selects the element with the ID 'body_id'
$('body_id');

getElement()

getElement()は、基本セレクター($)を拡張するメソッドです。 要素IDを使用して選択を絞り込むことができます。 getElement()は単一の要素のみを選択し、複数のオプションがある場合は最初の要素を返します。 クラス名を使用して、要素の最初の出現を取得することもできます。 しかし、要素の配列は取得しません。

マルチセレクター(&dollar;&dollar;)

&dollar;&dollar;複数の要素を選択し、それらの複数の要素を配列に配置するために使用されます。 その配列から、さまざまな方法でリストを操作、取得、および並べ替えることができます。 次の構文を見てください。 Webページ上のHTML要素のコレクションからすべてのdiv要素を選択する方法を定義します。

構文

<div>
   <div>a div</div>
   <span id = "id_name">a span</span>
</div>

すべてのdivを選択したい場合は、次の構文を使用します-

構文

//all divs in the page
$$('div');

あなたは同じID名を持つ複数の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がサポートするさまざまな演算子を定義します。

Operator Description Example
= (equal to) Select input element by its name. DOLLAR('body_wrap').getElements ('input[name = phone_number]');
^= (starts with) Select input element by comparing its starting letters of the name. DOLLAR('body_wrap').getElements ('input[name^=phone]');
DOLLAR= (ends with) Select the input element by comparing its ending letters of the name. DOLLAR('body_wrap').getElements ('input[name$ = number]');
!= (is not equal to) De-select the input element by is name. DOLLAR('body_wrap').getElements ('input[name!=address]');
*= (Contains) Select the input element which contains particular letter pattern. DOLLAR('body_wrap').getElements ('input[name*=phone]');

要素の順序に基づくセレクター

MooToolsセレクターは、要素の選択において特定の順序に従います。 セレクターは主に2つの順序に従います。 1つは偶数で、もう1つは奇数です。

-このセレクターは0から始まるため、最初の要素は偶数です。

偶数注文

この順序で、セレクタは偶数の順序で配置されている要素を選択します。 次の構文を使用して、HTMLページ内のすべてのdivを選択します。

構文

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

奇数

この順序で、セレクタは奇数の順序で配置された要素を選択します。 次の構文を使用して、HTMLページ内のすべての奇数divを選択します。

構文

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

次の例は、セレクターの仕組みを示しています。 Webページにテキストボックスとテクノロジのリストがあるとします。 テキストボックスにその名前を入力してリストから1つのテクノロジーを選択すると、入力に基づいてフィルターされた結果がリストに表示されます。 これは、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>

次の出力が表示されます-

出力