如何根据JQuery中的计数为每个元素添加id

时间:2015-07-21 09:50:55

标签: jquery

<div class="tile_nav">
<ul>
<li><span class="ullevel2"><span>Sample text</span></span></li>
<li><span class="ullevel2"><span>Sample text</span></span></li>
<li><span class="ullevel2"><span>Sample text</span></span></li>
<li><span class="ullevel2"><span>Sample text</span></span></li>        
</ul>   
</div>

我用过

$(".tile_nav .ullevel2 span").attr('id', function(index) {
return "testDiv" + ($(this).index() + 1);
});

如何在页面加载时根据jQuery的长度为每个元素添加id? https://jsfiddle.net/4LLocqau/1/

3 个答案:

答案 0 :(得分:2)

试试这个:

$('.tile_nav .ullevel2 span').each(function(index) {
    $(this).attr('id', 'testDiv' + (index + 1));
});

<强> jsFiddle

您可以使用each()循环来遍历span个对象。此each()会发送一个index值,我们可以进一步利用它来形成和应用id

我当然假设您要将id属性添加到最内层的span元素中。如果我错了,请纠正我。

希望这有帮助。

答案 1 :(得分:2)

您可以使用以下功能:

var cnt = 1;
$(".tile_nav .ullevel2 span").each(function () {
    $(this).attr('id', function (index) {
        return "testDiv" + cnt;
    });
    cnt++;
});
在你的情况下,

.each()可以循环使用元素。

工作演示:JSFiddle

答案 2 :(得分:0)

请查看此示例,它可能会有所帮助JsFiddle

$(".tile_nav .ullevel2 span").each(function( index ) {
   $(this).attr("id","testDiv" + (index+1));
   $(this).attr("title","id: 'testDiv"+(index+1)+"'"); //testing purpose
});