2010-06-29 130 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