【问题标题】:JQuery looping through each table rowjQuery循环遍历每个表行
【发布时间】:2011-03-09 10:10:28
【问题描述】:

我有如下表结构

<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 是否包含文本“test1”,如果是这样,我需要在同一行中隐藏类“ms-vb2-icon”的 td。

有人可以给我一些指点吗?

【问题讨论】:

    标签: jquery html html-table


    【解决方案1】:

    你可以这样做:

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

    You can test the code against your markup here

    这使用:contains() 来查看&lt;td&gt; 是否包含该文本,包裹在:has() 中以查看&lt;tr&gt; 是否具有匹配的元素,接下来我们将在其中找到td.ms-vb2-icon 单元格匹配的行并隐藏它们。

    【讨论】:

    • 也非常感谢您的解释。我可以看到它在小提琴中工作。只是不确定为什么它将 td 隐藏在我的 webpart 中的所有行上,除非我在 IE 开发人员工具栏中看到的 html 表结构与生成的 html 代码不同......
    • @nav - 我不得不稍微修正一下你的标记,例如 &lt;td&gt; 不能自动关闭,&lt;table&gt; 元素的 class 需要一个结束引号。通过在此处检查以确保您的实际标记有效:validator.w3.org
    • 谢谢尼克,我已将实际标记粘贴到小提琴编辑 jsfiddle.net/QUvYW
    • 很抱歉很痛苦,但你能发现为什么它在我编辑的小提琴中没有按预期工作吗..?
    • @nav - 你仍然有无效的标记,各种属性......但它仍然有效,至少在 Chrome 和 IE 中,像这样注释掉 jQuery 以查看区别:@ 987654326@
    【解决方案2】:
    $("td:contains('test1')").addClass("ms-vb2-icon");
    

    ?

    http://api.jquery.com/contains-selector/
    http://api.jquery.com/addClass/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-29
      • 1970-01-01
      • 1970-01-01
      • 2012-02-23
      • 1970-01-01
      • 2021-03-11
      • 1970-01-01
      相关资源
      最近更新 更多