Say I have 4 div elements with class .navlink, which, when clicked, use .data() to set a key called 'selected', to a value of true:
$('.navlink')click(function() { $(this).data('selected', true); })
Every time a new .navlink is clicked, I would like to store the previously selected navlink for later manipulation. Is there a quick and easy way to select an element based on what was stored using .data()?
There don’t seem to be any jQuery :filters that fit the bill, and I tried the following (within the same click event), but for some reason it doesn’t work:
var $previous = $('.navlink').filter(
function() { $(this).data("selected") == true }
);
I know that there are other ways to accomplish this, but right now I’m mostly just curious if it can be done via .data().
your filter would work, but you need to return true on matching objects in the function passed to the filter for it to grab them.