我对该课程有疑问,并为该课程提供特定的身份证明。
例如,我有一个像这样的HTML代码:
<div class="test">text1</div>
<div class="test">text2</div>
<div class="test">text3</div>
<div class="test">text4</div>
<div class="test">text5</div>
我的问题是如何在每个.test类中添加一个id。
我在Jquery中想到了这样的事情:
var i = 1;
$('.test').each(function(){
$('.test').attr('id','id_'+i+'');
i++
});
这不起作用我认为它与.closest()或.next()有关 解决这个问题。
此致
谢
编辑:
我自己解决了问题的答案是:
$('.test').each(function(){
$(this).attr('class','test').attr('id','id_'+i+'');
i++;
});
答案 0 :(得分:3)
没有理由制作一个计数器,.each()附带一个内置的。
$('.test').each(function(i){
$(this).attr('id','id_'+i+'');
});
答案 1 :(得分:2)
使用$(this)
来引用回调函数中的当前元素:
var i = 1;
$('.test').each(function(){
$(this).attr('id','id_'+i);
i++
});
答案 2 :(得分:1)
这样更快更简单:
$('.test').each(function(i){
this.id = 'id_' + i;
});
设置或获取元素的.attr()
时无需id
。
或者,如果您希望数字以1
开头,请执行以下操作:
$('.test').each(function(i){
this.id = 'id_' + (i + 1);
});
答案 3 :(得分:0)
你走在正确的道路上:
var i = 1;
$('.test').each(function(){
$(this).attr('id','id_'+i+'');
i++
});
答案 4 :(得分:0)
请改用此jQuery:
var i, $test = $('.test'), tl = $test.length;
for (i = 0; i < tl; i++) {
$test.eq(i).attr('id','id_'+i+'');
}
当i
循环中for
递增时,您选择要为i
id
.eq(i)
添加{{1}}的特定元素。