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() . Thanks. Source: Tips4all