jQuery:选择属性大于值的所有元素


71

我知道要过滤具有属性attrName的属性,该属性具有值attrValue,我这样做:

filter("[attrName='attrValue']")

但是看文档http://api.jquery.com/category/selectors/我看不到选择所有元素的选项st attrName> attrValue

这项工作会吗

   filter("[attrName>'attrValue']")

1
如果您要查找属性大于零的元素,则可以使用[attribute!=0]
Damien Bezborodow

Answers:


105

您可以使用的函数重载来做到这一点.filter(),如下所示:

.filter(function() {
  return $(this).attr("attrName") > "someValue";
})


23

请注意,如果您使用整数,请确保使用parseInt()

$("selector").filter(function() {
    return parseInt($(this).attr("my-attr")) > 123;
});

7
同意!一些用户可能会看到“ 3”>“ 1”是正确的,并认为他们不需要在比较之前将字符串解析为整数。这是因为ASCII值“ 3”高于ASCII值“ 1”。但是,当您比较一个以上位数的值时,情况就变南了(例如,“ 33”>“ 4”为假,而33> 4为真)。
亚瑟·赫伯特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.