为什么我的$ .each调用返回的结果多于元素?

xia*_*ica 3 javascript iteration jquery

我在通过特定类的div进行简单迭代时遇到了麻烦.

有两个div,但我有14次迭代.

  $(function() {
      $.each("div.container", function(){
         alert( "test" );
      });
   });
Run Code Online (Sandbox Code Playgroud)

和HTML

<div id="div1" class="container">

</div>

<div id="div2" class="container">

</div>
Run Code Online (Sandbox Code Playgroud)

谁能解释我做错了什么?谢谢你

Uma*_*bar 7

试试这个

$(function() {
      $("div.container").each( function(){
         alert( "test" );
      });
   });
Run Code Online (Sandbox Code Playgroud)


Aro*_*eel 6

您应该使用以下内容:

$(function() {
    $("div.container").each( function(){
        alert( "test" );
    });
});
Run Code Online (Sandbox Code Playgroud)

$ .each.each之间有很大的不同.

第一种方法是泛型迭代器函数,用于迭代数组和对象,后一种方法用于循环遍历jQuery对象的集合.

在调用时$.each('div.container'),实际上是将字符串的每个字母作为函数参数传递.由于div.container包含13个(是,13个)字符,因此迭代被调用13次(参见示例).