按ID删除元素

时间:2016-06-02 12:53:45

标签: javascript jquery html

我有一个具有以下结构的表:

<table>
  <tr>
    <td>some column|1</td>
    <td id="abc|1">abc</td>
    <td id="abc|1">abc</td>
  </tr>
  <tr>
    <td>another column|1</td>
    <td id="def|1">def</td>
    <td id="def|1">def</td>
  </tr>
  <tr>
    <td>ome column|2</td>
    <td id="abc|2">abc</td>
    <td id="abc|2">abc</td>
  </tr>
  <tr>
    <td>another column|2</td>
    <td id="def|2">def</td>
    <td id="def|2">def</td>
  </tr>
</table>

内容来自数据库。

如您所见,ID的后缀为|x。我想删除第二列中带有后缀|2的所有元素以及第三列中带有后缀|1的所有元素。
此外,第3列应移至顶部,第1列中以|2结尾的所有行都将消失。

因此最终结果如下:

&#13;
&#13;
<table>
  <tr>
    <td>some column|1</td>
    <td id="abc|1">abc</td>
    <td id="abc|2">abc</td>
  </tr>
  <tr>
    <td>another column|1</td>
    <td id="def|1">def</td>
    <td id="def|2">def</td>
  </tr>
</table>
&#13;
&#13;
&#13;

这是我的方法,但它根本不起作用:

$("table td:nth-child(2)").find("[id$=2]").each(function() {
  $(this).hide();
});

$("table td:nth-child(3)").find("[id$=1]").each(function() {
  $(this).hide();
});

Here is the fiddle

1 个答案:

答案 0 :(得分:2)

ID应该是唯一的。如果您可以更改HTML并使ID唯一,那就更好了。

如果改变HTML是不可能的

由于两个选择器都指向同一个元素,请使用以下

$("table td:nth-child(2)[id$=2], table td:nth-child(3)[id$=1]").hide();

Demo