如何在特定的InnerHTML上的类HTML元素上创建ID没有ID,使用JavaScript?

时间:2014-09-06 04:48:34

标签: javascript class validation add innerhtml

我遇到无法运行的代码问题,我想要一个共享同一个类的列表为特定文本添加特定的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>

2 个答案:

答案 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");
    }
});