用于过滤掉元素的jquery选择器

时间:2010-07-26 21:34:44

标签: jquery

我有:

var rows = $table.find('tbody > tr').get();

这将选择所有行。但是,并非所有表都明确定义了thead和tbody,因此我需要过滤 out 任何包含.children('th')的行

2 个答案:

答案 0 :(得分:10)

编辑:我假设您要过滤 out 包含<th>元素的行。如果您想最终只使用 那些行,那么只需删除:not()部分。


这将为表格中的<tr>元素提供没有后代<th>的内容。

var rows = $table.find('tr:not(:has(th))').get();

请注意,这也会考虑嵌套表。如果将有带<th>标记的嵌套表,请尝试以下操作:

var rows = $table.find('tr:not(:has( > th))').get();

...这应该限制<th>标签对直系儿童的考虑。

答案 1 :(得分:-1)

为什么不将其更改为:

var rows = $table.find('tr > th').get();

编辑:

var rows = $table.find("tr:has(th)").get();