我有一个页面,其中有多个<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。任何帮助都会非常感激。
答案 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)并设置为新的部分