如何根据内容删除表列?

时间:2013-03-01 19:11:51

标签: javascript jquery

我有一张这样的表:

<table>
    <tbody>
        <tr>
            <td width="50">
                <img title="Image1" 
                     src="images/image1.png" onclick="dosomething()">
            </td>
            <td width="50">
                <img title="Image2" src="images/image2.png" 
                     onclick="dosomethingelse()">
            </td>
        </tr>
    </tbody>
</table>

我想删除包含Image1的<td>。我知道在jQuery中我可以用

删除图像本身
$( "img[title='Image1']" ).remove();

但是我想要修改包含<td>及其宽度以折叠表格,好像该图像及其列从未出现过......

有没有办法从$("img[title='Image1']")备份到包含元素?或者我是否需要遍历整个表格(可能很大)并搜索这个?

6 个答案:

答案 0 :(得分:2)

我会选择

$("img[title='Image1']").closest('td').remove();

或者像其他人一样提到:

$("img[title='Image1']").parent().remove();

答案 1 :(得分:1)

你可以做$("img[title='Image1']").parent().remove();。这将删除包含图像的单元格(假设图像始终是单元格的直接后代)。

答案 2 :(得分:1)

.parent()应该这样做。

$("img[title='Image1']").parent().remove();

虽然我亲自在图像上拍了一张ID并使用:

var toremove = document.getElementById('imageid').parentNode;
toremove.parentNode.removeChild(toremove);

答案 3 :(得分:1)

使用.parent()

$( "img[title='Image1']" ).parent().remove();

来自文档:

  

.parent([selector])
获取当前匹配元素集中每个元素的父元素,可选择通过选择器进行过滤。

答案 4 :(得分:1)

$( "img[title='Image1']" ).parent().remove();

这应该做你想要的......

答案 5 :(得分:1)

这将根据点击的图像删除列。

$('table img').click(function() {
  $(this).closest('td').remove();
});