2011-04-06 45 views
0

比方說,我有一個非常簡單的表:的JavaScript:如何通過表迭代並刪除第二個細胞在Javascript

<table> 
    <tr> 
     <td>TextFirst</td> 
     <td>TextSecond</td> 
    </tr> 
</table> 

我如何遍歷表,並刪除「TextSecond」。該表可以是任意數量的行或單元格。

+0

你只需要拿出第二個或所有TextSecond? – corroded 2011-04-06 19:17:02

+0

你想爲每一行做這個嗎?或者只是第一個?移除發生時必須滿足哪些條件? – 2011-04-06 19:17:11

+0

我想爲每一行都做,並且可能會有更多的行。 – WilliamTheStudent 2011-04-06 19:18:10

回答

1
$("table td:nth-child(2)").remove() 
+0

您可能需要閱讀[標記幫助頁](http://stackoverflow.com/editing-help/)以瞭解代碼格式。 :) – 2011-04-06 22:43:35

+0

kek我寫了它儘可能快,我可以對不起:P現在修好了,現在 – corroded 2011-04-07 03:56:23

+0

無後顧之憂;它似乎很奇怪,你不知道如何格式化代碼與rep> 2000 ... :) – 2011-04-07 06:14:57

3

在您發佈的例子中,你已經,至少兩個選擇,我能想到的:

$('td:nth-child(2)').remove(); 

或者:

$('tr td:eq(1)').remove(); // zero-based index, thanks @ZDYN for the catch 

或者,在普通的JavaScript:

var removeThis = document.getElementsByTagName('td')[1]; 
removeThis.parentNode.removeChild(removeThis); 

JS Fiddle demo

+1

我相信':eq()'索引是基於0的。 – zdyn 2011-04-06 19:33:17

+0

哦...... ** darn **,是啊:你是對的!嘆息......我也知道。 +1爲好眼睛,謝謝。 **編輯成答案** :) – 2011-04-06 19:37:22

+0

發生在我們最好的=] – zdyn 2011-04-06 19:43:08

0

您可以使用nth-child ...: $('table :nth-child(2)').remove(); JSFIDDLE

0
//var table = document.getElementById("?"); 
    for (i=0; i < table.rows.length; i++) 
    { 
     if (table.rows[i].cells.length > 1) 
      table.rows[i].cells[1].removeNode(true); 
    } 

,或者如果你想刪除基於某些條件的細胞。只是因爲

//var table = document.getElementById("?"); 
    for (i=0; i < table.rows.length; i++) 
    { 
     for (j = table.rows[i].cells.length - 1; j >= 0; j--) 
     { 
      if (table.rows[i].cells[j].innerHTML == 'TextSecond') 
       table.rows[i].cells[j].removeNode(true); 
     } 
    }