2011-07-19 26 views
2

我的表看起来像这样:my table如何让jquery清除表格单元格?

我怎样才能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> 

编辑

明白了。我需要修剪()。

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

+0

你能张贴一些HTML,可以描绘的场景.. – Rafay

+0

by cell你的意思是最后'tr'或最后'tr'的最后'td'? – Rafay

+0

@ 3nigma添加了更多类似于我的场景的HTML代码 –

回答

1

假设使用remove

$("#idOfYourDropDown").remove(); 
你的表看起来像

<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"); 
    } 
}); 

您可以通过选择它,然后删除它删除下拉

这里是工作小提琴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/

+0

这几乎适用于我。我添加了更多的HTML,你可以看到我的场景。请编辑。谢谢! –

+0

@Trey Copeland:你想做什么? – Rafay

+0

这段代码顺便淡化了整个最后一行。 –

0

只是一个CSS属性或东西隐藏起来,然后再次显示它在必要时。如果你愿意,你可以管理一个隐藏的输入值,指出下拉是否可见。

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/

+0

您的代码清除了我所有行中的所有下拉菜单。我为我的场景添加了更多的html,请看看。 –

+0

我只是做了一个改变,跳过第一行,因为这是标题行。请再次测试。 –

+0

此代码仍会删除每中最后一个​​的每个下拉菜单。如果该行中的第一个​​为空,它应该只删除最后的​​。 –

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(""); 
    } 
});