【问题标题】:How do I create ID on a class HTML element on specific InnerHTML has no ID, with JavaScript?如何使用 JavaScript 在没有 ID 的特定 InnerHTML 上的类 HTML 元素上创建 ID?
【发布时间】:2014-09-06 04:48:33
【问题描述】:

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

【问题讨论】:

    标签: javascript class validation add innerhtml


    【解决方案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。这将在以后导致任意结果...

    【讨论】:

      【解决方案2】:

      尝试为此使用 jquery。它会根据您的需要工作。

      $(".classtext").each(function(){
          if($(this).html() == 'text to add id')
          {
             $(this).attr("id", "first_id");
          }
      });
      

      【讨论】:

      • 这个想法是只使用javascript结合ABP或时尚,移动、隐藏等特定元素。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-11
      • 2011-12-19
      相关资源
      最近更新 更多