为类提供特定的id

时间:2011-01-22 17:03:35

标签: javascript jquery class

我对该课程有疑问,并为该课程提供特定的身份证明。

例如,我有一个像这样的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++;
    });

5 个答案:

答案 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}}的特定元素。