1. 程式人生 > >$.each()函式與$(selector).each()的區別

$.each()函式與$(selector).each()的區別

.each()functionisnotthesameas(selector).each(), which is used to iterate, exclusively, over a jQuery object. The .each()functioncanbeusedtoiterateoveranycollection,whetheritisanobjectoranarray.Inthecaseofanarray,thecallbackispassedanarrayindexandacorrespondingarrayvalueeachtime.(Thevaluecanalsobeac

cessedthroughthethiskeyword,butJavascriptwillalwayswrapthethisvalueasanObjectevenifitisasimplestringornumbervalue.)Themethodreturnsitsfirstargument,theobjectthatwasiterated..each()函式與(selector).each()jQuery.each()函式可以用於遍歷任何集合,無論它是物件還是陣列。在陣列的情況下,每次回撥都會傳遞一個數組索引和相應的陣列值。(這個值也可以通過這個關鍵字來訪問,但是Javascript總是將這個值作為一個物件包裝,即使它是一個簡單的字串或數字值。)該方法返回第一個引數,即迭代的物件。

(selector).each()(selector).each(function(index, Element) );第一個引數代表陣列的索引,第二個引數代表數組裡面對應的值。

<ul>
    <li>foo</li>
    <li>bar</li>
</ul>
你可以選中並迭代這些列表:

$( "li" ).each(function( index ) {
  console.log( index + ": "" + $(this).text() );
});
列表中每一項會顯示在下面的訊息中:

0: foo 
1: bar

我們可以通過返回 false以便在回撥函式內中止迴圈。

引數代表的意思:

<ul
>
<li>foo</li> <li>bar</li> </ul> <script> $( "li" ).each(function( index ,dom ) { console.log(index);// 0 ,1 console.log(dom);// <li>foo</li> console.log($(dom).text());//foo }) </script>

$.each()函式既可以遍歷陣列又可以遍歷物件

遍歷陣列
$.each([ 52, 97 ], function( index, value ) {
  alert( index + ": " + value );
});
輸出結果
0: 52 
1: 97

遍歷物件
var obj = {
  "flammable": "inflammable",
  "duh": "no duh"
};
$.each( obj, function( key, value ) {
  alert( key + ": " + value );
});
輸出結果
flammable: inflammable 
duh: no duh