使用javascript将Id动态分配给DOM元素

jnk*_*ois 1 javascript

我只是有一个关于如何为HTML元素即时生成id的快速问题.到目前为止,我已经尝试了一些东西,我开始使用"for"循环,我已经知道有多少元素我必须生成Id,在这种情况下,我有一个"ul"与6"li".我的"for"循环如下:

var items = $("ul li").length;
for(var i = 0; i <= items; i++){
    $("ul li").attr("id", "number" + i);
}
Run Code Online (Sandbox Code Playgroud)

"number"将是与"i"连接的新id,因此我为每个"li"获得不同的Id.你可能会说,这不起作用,因为我最终为每个"li"使用相同的Id:

在这种情况下,我得到<li id="number6">... </li>"ul"中的所有"li"元素.我尝试了一个"while"循环和".each()"与jQuery,但我得到完全相同的东西.

任何帮助,将不胜感激.

Nic*_*ver 7

使用a .each()(使用this内部,而不是选择器!)可以更容易地做到这一点,如下所示:

$("ul li").each(function(i) {
  $(this).attr("id", "number" + i);
});
Run Code Online (Sandbox Code Playgroud)

在该函数.each()获取索引和元素作为参数,所以你就只能使用i指定的ID从0开始像你现在.

或者,您也可以传递类似的功能.attr(),如下所示:

$("ul li").attr('id', function(i) {
  return "number" + i;
});
Run Code Online (Sandbox Code Playgroud)