如何使用javascript为多个标签设置唯一ID

时间:2016-10-05 20:19:43

标签: javascript html

我有一个页面,其中有多个<section>标记,我想要做的是为每个标记分配一个唯一的ID。

<body>
<button id="set" onclick="setIds()">SET</button>
<div id="d1">
    <section>1</section>
    <section>2</section>
    <section>3</section>
    <section>4</section>
    <section>5</section>
    <section>6</section>
<div id="demo"></div>
<script>
 var sec = document.getElementsByTagName('section');

   function setIds(){ 
    for(var i = 0; i < sec.length; i++){
        console.log(sec[i].id);
        var secId = 0;
        secId += 1;
        sec[i].id = secId;
    }}
</script>
</body>

我还在学习javascript,因此,我尝试过使用此代码,它只是为所有部分添加了相同的ID。任何帮助都会非常感激。

3 个答案:

答案 0 :(得分:3)

这是因为您将$(function(){ $('#datepicker').datepicker({ numberOfMonths: 2, showCurrentAtPos: 3, onSelect: function (dateText, datePicker) { datePicker.drawMonth += $("#datepicker").datepicker("option", "showCurrentAtPos"); $('#out').html(this.value); } }); }); 重置为secId的每个循环。如果你在循环之外声明它并且只增加每个循环,那么它将起作用:

0

答案 1 :(得分:1)

您每次都在secId循环中重置for。所以它总是1。不要那样做。事实上,你根本就没有secId,因为你有你的数组索引。所以在你的循环中你可以做类似的事情:

sec[i].id = "section_" + i;

或者如果真的希望它从1开始:

sec[i].id = "section_" + (i+1);

我添加了section_的前缀,因为如果您有多个代码执行类似操作,那么仅使用该数字可能会发生冲突

答案 2 :(得分:1)

将此行放在循环之外 var secId = 0; 因为每次进入looop并声明变量并设置0并添加(1)并设置为新的部分