jquery如何从表中删除列

时间:2011-06-06 14:58:08

标签: javascript jquery

我需要单击关闭img,然后删除img所在的所有列。

我正在尝试做这样的事情:

            var colnum = $(this).closest("td").prevAll("td").html();

    $(this).closest("table").find("tr td:eq(" + colnum + ")").remove();

但是,它不起作用。

编辑:GUYS,对于第一篇文章感到抱歉,我很快就打开了这个问题。 我编辑了一切。看看演示

html演示:New Demo

如果你们看到表中的红色东西,我需要在点击“关闭”时删除。 删除我点击的列。

ps:伙计们,红人班只是你们看到哪里需要成为紧密的事件。

4 个答案:

答案 0 :(得分:1)

在你的示例演示中,实际应该关闭什么?...我稍微修改了它,关闭列消失了,但我不确定你还有什么期望被删除。

见这里:http://jsfiddle.net/gfosco/TdCYy/24/

问题出在嵌套表中...您想要从单元格父表父表中删除该列。

此处更新了示例:

http://jsfiddle.net/gfosco/TdCYy/37/

答案 1 :(得分:0)

您应该能够使用第n个子选择器来获取第n列中的单元格,如下所示:

$(this).closest("table").find("tr td:nth-child(" + colnum + ")").remove();

答案 2 :(得分:-1)

点击此链接,我编辑了您的演示http://jsfiddle.net/TdCYy/39/

这是HTML不变,除了添加到第一个红色行的第一行类:


<table border='1' width='100%'>
    <tr>
        <td>Somthing 1</td>
        <td>Somthing 2</td>
        <td>Somthing 3</td>
        <td>
            <table border='1' style='border: solid red;' width='100%'>
                <tr class="first-row">
                    <td colspan='2'>
                        Something
                        <span style='float: right' class='img_romove_columm'>Close</span>
                    </td>
                </tr>
                <tr>
                    <td>Another</td>
                    <td>Another 1</td>
                </tr>
            </table>
        </td>
    </tr>
    <tr>
        <td>Result</td>
        <td>Result</td>
        <td>Result</td>
        <td class='red'>Result</td>                    
    </tr>
    <tr>
        <td>Result</td>
        <td>Result</td>
        <td>Result</td>
        <td class='red'>Result</td>                    
    </tr>
    <tr>
        <td>Result</td>
        <td>Result</td>
        <td>Result</td>
        <td class='red'>Result</td>            
    </tr>
    <tr>
        <td>Result</td>
        <td>Result</td>
        <td>Result</td>            
        <td class='red'>Result</td>   
    </tr>            
</table>

CSS未受影响。

Javascript应该是(这是有效的):

$(".img_romove_columm").click(function(){
    // Hide the first row that has the close button, and also hide the row right after it (another, another1)
    $('tr.first-row, tr.first-row + tr').hide();
    // Hide everything that has the red class (result, result, result, result, )
    $('td.red').hide();
});

这是你要找的吗?

答案 3 :(得分:-1)

这是我提出的一个例子。只需将同一个类(red)应用于要消失的所有元素,包括嵌套表。然后你可以打电话

    $('.red').hide();

FIDDLE http://jsfiddle.net/Jaybles/TdCYy/42/