jquery筛选器选择器与筛选器方法
我在让jquery筛选器方法工作方面遇到了问题 如果我有jquery筛选器选择器与筛选器方法,jquery,Jquery,我在让jquery筛选器方法工作方面遇到了问题 如果我有 $("#resultDiv tr:odd").addClass("alternate_row"); div resultDiv中包含表的所有行都被赋予了alternate row类 但是如果我使用 $('#resultDiv').filter("tr:odd").addClass("alternate_row"); 它似乎与任何元素都不匹配,并且没有应用任何类 我需要使用filter方法,因为我正在做一些传递变量的其他事情 我遗漏了
$("#resultDiv tr:odd").addClass("alternate_row");
div resultDiv中包含表的所有行都被赋予了alternate row类
但是如果我使用
$('#resultDiv').filter("tr:odd").addClass("alternate_row");
它似乎与任何元素都不匹配,并且没有应用任何类
我需要使用filter方法,因为我正在做一些传递变量的其他事情
我遗漏了什么?我猜resultDiv是所有“的父项”,所以我想你想要这个:
$('#resultDiv tr').filter(":odd").addClass("alternate_row");
使用第二个选择器选择id为resultDiv的元素,并对其应用过滤器。但它可能不是一个收藏,只是一张桌子或其他东西 您必须选择tr元素并像这样对它们应用过滤器
$('#resultDiv tr').filter(":odd").addClass("alternate_row");
这样,您将有一个tr集合来应用过滤器。在您的第一个版本中:
$'resultDiv'.filtertr:odd.addClassalternate\u行
.filter从集合中删除不匹配的元素,并且您的resultDiv元素都不是tr,因此筛选器不匹配任何内容
尝试:
显式添加与tr:odd选择器匹配的新子代节点,或
$('#resultDiv tr').filter(":odd").addClass("alternate_row");
它使用单个选择器查找所有tr元素,然后使用.filter只选择奇数元素。如果您试图添加类以进行样式设置(如zebra striping),并且不必支持较旧的浏览器,您还可以查看CSS3第n个子选择器。不幸的是,我们必须支持较旧的浏览器,这就是为什么我选择这样做的原因way@DanielPowell你的问题是什么?因为第一个选择器显式查找子代tr节点。筛选器不会找到新节点,它只会减少当前匹配的节点集。
$('#resultDiv tr').filter(":odd").addClass("alternate_row");