我正在尝试抓取表格中的所有表格行,然后根据它们的标题为“hideGroup”的类对其进行过滤。到目前为止这是我的代码,但它只是输出数字。获取表中所有表行的正确方法是什么,然后检查它们是否有一个名为“hideGroup?”的组?
var newRows = $("#search-results-table").find("tr");
var filteredRows = newRows.filter(function(n) {
if (n.className != "hideGroup")
return n;
});
答案 0 :(得分:4)
你的问题不是很清楚。
如果您想选择不拥有该课程的所有行
,请使用:not()
$('#search-results-table tr:not(.hideGroup)')
如果您只想使用该类过滤那些:
$('#search-results-table tr.hideGroup');
答案 1 :(得分:1)
$('#search-results-table tr.hideGroup')
将返回完整集。
如果你想要行而不是类hideGroup
,尽管明确地说check to see if they have a group called "hideGroup?"
,这里是选择器:
$('#search-results-table tr').not('.hideGroup')
答案 2 :(得分:1)
要使用“hideGroup”类返回集合所有表行:
$('#search-results-table tr.hideGroup')
过滤不的类使用“hideGroup”类:
$('#search-results-table tr:not(.hideGroup)')
答案 3 :(得分:1)
$('#search-results-table tr:not(.hideGroup)')
这将返回没有hideGroup类的所有表行
答案 4 :(得分:0)
它返回数字的原因是因为n
是索引(数字),而不是元素。因此n.className
始终为undefined
,这将使您在该函数中的逻辑始终返回n
。
您要使用的是使用
选择结果$('#search-results-table tr.hideGroup')
或
$('#search-results-table tr:not(.hideGroup)')
答案 5 :(得分:0)
使用jQuery.filter()
的函数时,第一个参数是索引,而不是元素。您可以使用this
代替:
var newRows = $("#search-results-table").find("tr");
var filteredRows = newRows.filter(function(n) {
return !$(this).hasClass('hideGroup');
});
但是,请看一些其他答案。它们提供了更短的解决方案。