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

我有:

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

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

编辑:我假设您想过滤掉具有

元素的行。 如果你想只得到那些行,那么就去掉:not()部分。


这将为表中的

元素提供没有后代

元素。

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

请注意,这也将考虑嵌套表。 如果将有带

标记的嵌套表,请尝试以下操作:

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

……应该将

标签的考虑限制在直接的孩子身上。

为什么不改为:

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

编辑:

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