使用JQuery从特定表中删除列

时间:2012-03-28 11:55:55

标签: jquery

我正在使用不允许我编辑HTML的CMS,我只能使用JavaScript和HTML来自定义它的外观。有一个包含3个表的页面,我想从第二个表中删除(或隐藏)第二列。这是HTML代码:

<TABLE>
   <TR>
      <TD>&nbsp;</TD>
      <TD>&nbsp;</TD>
   </TR>
   <TR>
      <TD>&nbsp;</TD>
      <TD>&nbsp;</TD>
   </TR>
</TABLE>

<TABLE>
   <TR>
      <TH>Row 1</TH>
      <TH>Row 2</TH>
      <TH>Row 3</TH>
   </TR>
   <TR>
      <TD>&nbsp;</TD>
      <TD>&nbsp;</TD>
      <TD>&nbsp;</TD>
   </TR>
   <TR>
      <TD>&nbsp;</TD>
      <TD>&nbsp;</TD>
      <TD>&nbsp;</TD>
   </TR>
</TABLE>

<TABLE>
   <TR>
      <TH>Row 1</TH>
      <TH>Row 2</TH>
      <TH>Row 3</TH>
   </TR>
   <TR>
      <TD>&nbsp;</TD>
      <TD>&nbsp;</TD>
      <TD>&nbsp;</TD>
   </TR>
   <TR>
      <TD>&nbsp;</TD>
      <TD>&nbsp;</TD>
      <TD>&nbsp;</TD>
   </TR>
</TABLE>

如何删除第二个表中的第二列?

3 个答案:

答案 0 :(得分:3)

检查这个小提琴:http://jsfiddle.net/FJfbW/1/

$('td:nth-child(2), th:nth-child(2)', 'table:eq(1) tr').css('background', '#f00');

您可以在不使用.remove()的情况下使用.css()来删除列

答案 1 :(得分:1)

使用jquery:http://jsfiddle.net/upeVs/

$('table:eq(1) tr td:nth-child(2),table:eq(1) tr th:nth-child(2)').remove();

修改:
@blackpla9ue给出的解决方案可能会更高效,因为它只查找一次表行:

$('td:nth-child(2), th:nth-child(2)', 'table:eq(1) tr').remove();

答案 2 :(得分:0)

我看到表中没有id。所以@ blackpla9ue的答案是最合适的。但是如果您需要删除具有id的表的第二行,请转到下面的代码。

$('td:nth-child(2), th:nth-child(2)', '#tblEventSearchResults tr').css('background', '#f00');​