2010-06-29 75 views
2

我有以下表結構的JQuery循環通過每個錶行

<table class="ms-listviewtable> 
<tr> 
<td class="ms-vb2-icon"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2">test1</td> 
</tr> 
<tr> 
<td class="ms-vb2-icon"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2">test2</td> 
</tr> 
<tr> 
<td class="ms-vb2-icon"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2">test3</td> 
</tr> 
</table> 

我需要遍歷每個行,然後遍歷每個TD和檢查,如果在連續的TD包含文本「測試1」如果是這樣我需要在同一行中隱藏類「ms-vb2-icon」的td。

有人可以給我一些指針嗎?

回答

4

你可以這樣說:

$("tr:has(td:contains('test1')) td.ms-vb2-icon").hide(); 

You can test the code against your markup here

這使用:contains(),看是否有<td>包含文本,包裹在:has(),看是否<tr>有一個匹配的元素,接下來我們找到td.ms-vb2-icon單元格在匹配的行中並隱藏它們。

+0

非常感謝您的解釋。我可以看到它在小提琴中工作。 只是不知道爲什麼它隱藏在我的webpart中的所有行的td,除非我在IE開發工具欄中看到的html表結構與生成的html代碼不一樣...... – van 2010-06-29 02:50:23

+0

@nav - 我必須修復你的標記有點兒小提琴,例如'​​'不能自動關閉,'

'元素的'class'需要一個結束語。請確保你的實際標記是有效的,在這裏檢查它:http://validator.w3.org/ – 2010-06-29 02:57:48

+0

謝謝尼克我已經將實際標記粘貼到小提琴編輯http://jsfiddle.net/QUvYW/ – van 2010-06-29 03:07:05