2012-12-05 39 views
-1

我不得不刪除某些TR具有在table..I一類特殊嘗試下面的東西,但它似乎沒有工作具有一定的類名

var d1 = document.getElementsByClassName("t1"); 
    for (var i = 0; i < d.length; i++) { 
     d1[i].parentElement.removeChild(d1[i]); 
    } 

是否有人可以指導我刪除TR在正確的方向

<html> 
    <head> 
     <script type="text/javascript"> 
      function removeTR(){ 
      } 
     </script> 
    </head> 
    <body onload="javascript:removeTR()"> 
     <table> 
      <tr > 
       <td></td> 
      </tr> 
      <tr class="t1"> 
      </tr> 
      <tr class="t1"> 
      </tr> 
     </table> 
    </body> 
</html> 
+2

你在HTML類是't1'和你想刪除'tr1'在JS。這是一個錯字嗎? –

+0

'var d1 ='和'd [i] .parentElement' ... 嗯,這是你的問題。保持與您的命名一致。 – Cerbrus

+0

同樣,你的變量是'd1',而你正在循環'd'。請修復你的問題 –

回答

1

你有幾個錯字和另一個更根本的問題:你不能重複這樣的,在由getElementsByTagName回到同一時間在一個動態的收集(活節點列表)中刪除。

var d = document.getElementsByClassName("t1"); 
for (var i = 0; i < d.length; i++) { 
    d[i].parentElement.removeChild(d[i]); 
} 

在第二次迭代你會嘗試在索引1移除元素,但仍然會有在索引0,因此永遠不會被刪除的元素。

一個解決辦法是這樣的:

var d = document.getElementsByClassName("t1"); 
while (d.length) d[0].parentElement.removeChild(d[0]); 

Demonstration

+0

感謝您的回覆..我很新的JavaScript,並不完全理解,但是正在尋找答案,發現jQuery有一個非常簡單的方法,所以我現在使用這個$ (」 .t1' )除去();它的工作原理..這是一個好辦法做到這一點..標記你的解決方案作爲答案,因爲我問你提供的JavaScript ...謝謝 – user505210

+0

jQuery是非常有用的。但是你應該試着瞭解你的bug是什麼以及我如何修復它。 –

相關問題