2012-01-23 55 views
0

我想用jQuery檢查表格的每個表格行中的第二個單元格是否包含任何文本,如果第二個單元格不包含任何文本,則設置要顯示的表格行:沒有;檢查表格行單元格的內容

最好的方法是什麼?

HTML:

<table id="results"> 
    <tr> 
    <td>Results</td> 
    <td>1000</td> 
    </tr> 
    <tr> 
    <td>Description</td> 
    <td></td> <!-- This cell is empty so hide row --> 
    </tr> 
    <tr> 
    <td>Time/Date</td> 
    <td>14:03 22/01/12</td> 
    </tr> 
</table> 

回答

1

看一看的:empty selector:在IE8

$('table tr').has('td:empty:nth-child(2)').hide() 
+0

呵呵,我不知道'has'。有用!這避免了所有其他解決方案中的匿名函數或額外的DOM遍歷。 – Gijs

0
$('table tr').each(function() { 
    if(!$(this).find('td').eq(1).html().length) { 
     $(this).hide(); 
    } 
}); 

通過每個tr這將循環,發現使用第二個元素$.eq(1)(陣列從零開始),看看它是否使用$.html().length包含任何東西。如果它是空的,它將隱藏tr$(this).hide()

+0

對我的作品... – Gijs

0

一個簡單的解決方案,利用:empty選擇

$("#results tr").find('td:eq(1):empty').parent().hide(); 

小提琴:http://jsfiddle.net/GHg7f/2/

+0

習慣工作在ie –

+0

原因pls ???????? –

+0

我測試過了,它在這裏工作正常。 請注意,沒有必要對'empty_td'進行空值檢查 - 如果沒有匹配的元素,jQuery將返回一個空集合。 – Gijs

相關問題