2014-09-06 60 views
-1

我有一個代碼無法運行的問題,我想要一個共享相同類的列表,爲特定文本添加一個特定的ID。如何在特定的InnerHTML上的類HTML元素上創建ID沒有ID,使用JavaScript?

我有這個到目前爲止不能使它的工作。

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> 

回答

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

這可能technicall工作,,它將使用相同的ID(Second_id)元素。根據定義,任何id必須是唯一的,在本例中不是cas。這會導致後來的任意結果...

+0

坦克它的工作精細坦克。 – yaelmania 2014-09-06 06:34:45

1

嘗試使用jQuery進行此操作。它會按需要工作。

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

這個想法是隻使用javascript與ABP或時尚,移動,隱藏等特定元素。 – yaelmania 2014-09-06 06:39:55

相關問題