我遇到无法运行的代码问题,我想要一个共享同一个类的列表为特定文本添加特定的ID。
到目前为止,我无法使其发挥作用。
JS
function Check() {
var x = new Array(); x[0] = "text to add id";
if (document.getElementsByClassName("classtext").innerHTML == x[0]) {
x.setAttribute("id", "first_id");} else{x.setAttribute("id", "Second_id");
}
}
HTML
<blink>
<html>
<head>
</head>
<body>
<div class="classtext">text normal second id</div>
<div class="classtext">text to add id</div>
<div class="classtext">text normal second id</div>
<div class="classtext">text normal second id</div>
<span onclick="Check()">Compare</span>
</body>
</html>
</blink>
答案 0 :(得分:1)
方法document.getElementsByClassName("classtext")
将返回一个元素数组。因此,您无法访问它们的任何属性,您必须首先迭代它们。
接下来,您声明一个数组x
并尝试在其上设置HTML属性,我认为这是一个错字。
var elems = document.getElementsByClassName("classtext");
for ( var n = 0; n < elems.length; n++ )
{
if (elems[n].innerHTML == x[0]) {
elems[n].setAttribute("id", "first_id");
}
else {
elems[n].setAttribute("id", "Second_id");
}
}
这可能是技术性的, 但是 它将呈现具有相同ID(Second_id
)的元素。根据定义,任何id必须是唯一的,在本例中不是cas。这将导致后来的任意结果......
答案 1 :(得分:1)
尝试使用jquery。它会按你的需要工作。
$(".classtext").each(function(){
if($(this).html() == 'text to add id')
{
$(this).attr("id", "first_id");
}
});