使用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>
答案 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);