Chris Abrams
Chris Abrams

Reputation: 42440

jQuery .find() 2 matching arguments

I have an unordered list with multiple properties per element and I want to find all elements that have both properties.

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

I attached an example in the link below:

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

Upvotes: 3

Views: 1566

Answers (2)

Dancrumb
Dancrumb

Reputation: 27549

jQuery's find doesn't take a function as a parameter. That's why this doesn't work.

What you need is to construct an appropriate CSS selector. Something like:

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

Upvotes: 2

Niklas
Niklas

Reputation: 30002

Just use a single selector:

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

Example: http://jsfiddle.net/niklasvh/RyR87/

Upvotes: 9

Related Questions