[英]How to give unique html class name using javascript not from jquery
我是JavaScript的新手,我想搜索id = heading的数量并将唯一的类名附加到现有的类中。
我尝试使用JavaScript进行此操作,但只能将其仅添加到第一个标题中。 请参阅代码笔: https : //codepen.io/restar312/pen/EqWOyV
var check_div = document.getElementsByTagName('div');
var numheading = 0;
for (var i = 0; i < check_div.length; i++) {
if (check_div[i].id.indexOf('heading') != -1)
numheading++;
console.log(numheading);
var d = document.getElementById("heading");
d.className += numheading;
}
期望的类名称应为class = First_heading1 ... class = First_heading2 ... class = First_heading3
问题是您的标题具有相同的id heading
。 您应该使用不同的ID来访问不同的DOM元素。
例如:
<div id="heading1" class=First_heading>
<h1>Heading1</h1>
</div>
<div id="heading2" class=First_heading>
<h1>Heading2</h1>
</div>
<div id="heading3" class=First_heading>
<h1>Heading3</h1>
</div>
document.getElementById(“ heading”)
将始终为您提供具有该id
的第一个元素。 Document.getElementById()
className
不需要唯一,而id
必须唯一。 因此,您可以使用该className
遍历所有div
并为其分配唯一的id
。
window.onload = function(){ for(var tListOfElements=document.querySelectorAll('.heading'), i=0, j=tListOfElements.length; i<j; i++){ tListOfElements[i].id = tListOfElements[i].id || 'heading_' + i; tListOfElements[i].textContent = tListOfElements[i].id } };
<div class = 'heading'>A</div> <div class = 'heading'>B</div> <div class = 'noheading'>C</div> <div class = 'heading'>D</div> <div class = 'heading' id = 'wannakeepmyid'>E</div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.