2011-06-04 34 views
3

我有一个无序列表,每个元素有多个属性,我想查找所有具有这两个属性的元素。jQuery .find()2个匹配参数

var results = $('#mylist').find(function() { 
    return 
     $(this).attr('data-label') == 'red' && 
     $(this).attr('data-size') == 1; 
}); 

我附着在下面的链接的示例:

http://jsfiddle.net/nbz4H/1/

+1

仅供参考,'find'不接受函数。也许你的意思是'过滤器'。 – 2011-06-04 23:25:19

+2

只是一个指针,但如果您使用的是jQuery,则应该从[JS Fiddle demo](http://jsfiddle.net/nbz4H/13/)页面左侧的'select'下拉元素中选择jQuery ... – 2011-06-04 23:26:02

+0

好的指针,我的错! – 2011-06-05 01:05:33

回答

9

只需使用单个选择:

$('li[data-label="red"][data-size="1"]').css('color','red'); 

实施例: http://jsfiddle.net/niklasvh/RyR87/

+0

这工作得很好,让它很容易!谢谢! – 2011-06-05 01:06:12

2

jQuery的find不具有作为参数的功能。这就是为什么这不起作用。

你需要的是构建一个合适的CSS selector。例如:

results = $('#mylist [data-label="red"][data-size="1"]');