jQuery トラバーサル each()
jQuery はコレクション オブジェクトです。$() メソッドを通じて指定された要素のコレクションを見つけた後、一連の操作を?qū)g行できます。たとえば、$("li").css('') を操作します。 すべての li にスタイル値を設(shè)定します。 jQuery はコレクション オブジェクトであるため、css メソッドは內(nèi)部にトラバーサル メソッドをカプセル化する必要があります。これは、暗黙的な反復(fù)プロセスと呼ばれます。コレクション內(nèi)の各 li の色を 1 つずつ設(shè)定するには、ここでのメソッドは each
です。each() メソッドは、jQuery オブジェクト コレクション內(nèi)の各 DOM 要素を反復(fù)する for ループ反復(fù)子です。コールバック関數(shù)が実行されるたびに、現(xiàn)在のループ數(shù)がパラメーターとして渡されます (0 から數(shù)えます)
それでは、次の 3 つの重要なポイントを一般的に理解してください:
それぞれは for ループのラッパー反復(fù)子です
それぞれは次のように処理されますコールバックとウィルの 2 つの固定実パラメータがあります。各コールバック メソッドには、現(xiàn)在の反復(fù)の dom 要素が指定されています。
< ;li>Aaron</li>
</ul>
$("li").each(function(index, element) {
インデックスindex 0,1
要素は対応する li ノード li,li
これは li
このようにして、ループ本體でいくつかの論理演算を行うことができ、早期に終了する必要がある場合は、コールバック関數(shù)で return することでループを中止できます。 false
コードを書いてみましょう:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <style> .left { width: auto; height: 150px; } .left div { width: 150px; height: 120px; padding: 5px; margin: 5px; float: left; background: #bbffaa; border: 1px solid #ccc; } </style> <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script> </head> <body> <h2>each方法</h2> <div class="left first-div"> <div class="div"> <ul> <li>list item 1</li> <li>list item 2</li> <li>list item 3</li> </ul> </div> <div class="div"> <ul> <li>list item 4</li> <li>list item 5</li> <li>list item 6</li> </ul> </div> </div> <br/> <button>點擊:each方法遍歷元素</button> <button>點擊:each方法回調(diào)判斷</button> <script type="text/javascript"> $("button:first").click(function() { //遍歷所有的li //修改每個li內(nèi)的字體顏色 $("li").each(function(index, element) { $(this).css('color','red') }) }) </script> <script type="text/javascript"> $("button:last").click(function() { //遍歷所有的li //修改偶數(shù)li內(nèi)的字體顏色 $("li").each(function(index, element) { if (index % 2) { $(this).css('color','blue') } }) }) </script> </body> </html>