如何让jquery清除表格单元格?

时间:2011-07-19 19:34:27

标签: jquery

我的表格如下:my table

如果我的第一个单元格中有值,我如何获取jquery来删除下拉列表或清除最后一个单元格中的内容?只有前两个单元格为空时才会出现下拉列表。

<table>
<tr>headings here</tr>
<tr>
 <td>name</td>
 <td>id</td>
 <td>other id</td>
 <td>status</td>
 <td>select location</td>
</tr>
<tr>
 <td>name</td>
 <td>id</td>
 <td>other id</td>
 <td>status</td>
 <td>select location</td>
</tr>
<tr>
 <td>name</td>
 <td>id</td>
 <td>other id</td>
 <td>status</td>
 <td>select location</td>
</tr>
</table>

修改

知道了。我需要一个trim()。

http://jsfiddle.net/RN5Dn/1/

4 个答案:

答案 0 :(得分:1)

假设你的表看起来像

<table>
    <tr>
        <td>soon it will fade away</td>
        <td></td>
    </tr>
    <tr>
        <td>Last Samurai</td>
    </tr>
</table>

你可以这样做

$(function(){
    if(!$("table tr:first").find("td:first").text())
    {
        $("table tr:last").delay('1000').fadeOut("slow");
    }
});

您可以通过选择它来删除下拉列表,然后使用remove之类的

将其删除
$("#idOfYourDropDown").remove();

这是工作小提琴http://jsfiddle.net/3nigma/uF7M5/4/

在小提琴中我使用了delay,以便该值在一段时间内保持可见

jquery :first

jquery :last

修改

我假设如果没有名称你想要隐藏/删除select location

$(function(){

$("table tr").each(function(){

    if(!$("td:first",this).text())
    {
        $("td:last",this).delay("1000").fadeOut("slow");
    }

});

});

这里是小提琴http://jsfiddle.net/3nigma/uF7M5/3/

答案 1 :(得分:1)

快速而肮脏http://jsfiddle.net/nTExe/

$("tr:gt(0)").each(function() {
    if ($(this).find("td:eq(0)").html().length > 0 && $(this).find("td:eq(1)").html().length > 0) {
        $(this).find("td:last").html("");
    }
});

答案 2 :(得分:0)

只需使用CSS属性或其他内容隐藏它,然后在必要时再次显示它。如果需要,您可以管理隐藏的输入值,以指示下拉列表是否可见。

答案 3 :(得分:0)

只需在表格中输入一个ID(例如id =“tbl”),然后输入:

$(document).ready(function() {
    $('#tbl tr').each(function(i) {
        if (i === 0) return; // skip header row
        var children = $(this).children();
        var tdVal1 = children.eq(0).text();
        var tdVal2 = children.eq(1).text();
        if (tdVal1 || tdVal2) {
            children.eq(-1).html('');
        }
    });
});

你可以在这里测试一下: http://jsfiddle.net/protron/8AfVN/3/