javascript - 향상된 - jquery 객체 배열




왜 $.each()가 모든 항목을 반복하지 않는가? (2)

클래스 indent 가있는 10 개의 pre 요소를 포함하는 다음 마크 업 indent .

​<pre class="indent"></pre>
<pre class="indent"></pre>
<pre class="indent"></pre>
<pre class="indent"></pre>
<pre class="indent"></pre>
<pre class="indent"></pre>
<pre class="indent"></pre>
<pre class="indent"></pre>
<pre class="indent"></pre>
<pre class="indent"></pre>​

각 요소를 반복하려면 다음 jQuery .each() 함수를 사용하고 있습니다.

​$(function(){    
    $.each(".indent", function(index){
       alert(index); 
    });    
});​

10 개의 알림을 볼 것으로 예상되지만,

- 바이올린보기 -

그러나이 예상대로 $(".indent").each() :

$(function(){    
    $(".indent").each(function(index){
       alert(index); 
    });    
});​

- 바이올린보기 -

$.each() 문서를 보면 차이점을 알 수 있습니다.

$ .each () 함수는 $ (selector) .each ()와 같지 않습니다. jQuery 객체를 독점적으로 반복하는 데 사용됩니다.

그러나 나는 왜이 경우 모든 요소를 ​​반복하지 않는지 이해하지 못합니다.

왜 이런 일이 일어나는 걸까요?


$ .each는 데이터 콜렉션을 반복합니다. 7 개의 문자를 가진 String을 전달하기 때문에 각 문자에 대해 반복됩니다. 사용 예를 참조하십시오.

$.each([52, 97], function(index, value) { 
  alert(index + ': ' + value); 
});

당신은 문자열을 반복하고, 객체 나 배열을 $.each 메서드에 전달해야합니다 :

$(function(){    
    $.each($(".indent"), function(index){
       alert(index);
    });    
});




jquery