我正在使用Jquery的每个方法,我需要在每个方法中获取每个元素的id ...我回来未定义,为什么?

时间:2014-09-12 16:05:39

标签: jquery

使用Jquery的每个方法,我需要在每个方法中获取每个元素的ID ...我还没有定义,为什么?

 <div class='W'>
      <div class='cImage pull-left'>
           <img src='http://placehold.it/85x54/FFFFFF' />
      </div>
      <div class='cImage pull-left'>
           <img src='http://placehold.it/85x54/000000' />
      </div>
</div>

 <script>
      var idNum = 1;
      $('.W > .cImage').each(function(){
           $(this).attr('id', idNum);
           idNum++;
      });

      setTimeout(function() {
           $('.W .cImage').each(function(idx,el){
                console.log(el.attr('id'));
           });
      }, 5000);
 </script>

3 个答案:

答案 0 :(得分:1)

您可以使用$(this)获取元素引用:

console.log($(this).attr('id'));

或没有使用javascript对象的jquery对象:

   console.log(this.id);

答案 1 :(得分:1)

给你的each回调的元素是一个DOM元素,而不是一个jQuery元素。

替换

console.log(el.attr('id'));

console.log(el.id);

请注意,清洁代码有许多可能的改进:

$('.W > .cImage').attr('id', function(i){
   return i+1
});
$('.W .cImage').each(function(){
   console.log(this.id);
});

示范

答案 2 :(得分:0)

使用:

 setTimeout(function() {
        $('.W .cImage').each(function(idx){
            console.log($(this).attr('id'));
        });
    }, 5000);