Jannis Jannis - 2 months ago 14
jQuery Question

jQuery how to find an element based on a data-attribute value?

I've got the following scenario:

var el = 'li';


and there are 5
<li>
's on the page each with a
data-slide=number
attribute (number being 1,2,3,4,5 respectively).

I now need to find the currently active slide number which is mapped to
var current = $('ul').data(current);
and is updated on each slide change.

So far my tries have been unsuccessful, trying to construct the selector that would match the current slide:

$('ul').find(el+[data-slide=+current+]);


does not match/return anything…

The reason I can't hardcode the
li
part is that this is a user accessible variable that can be changed to a different element if required, so it may not always be an
li
.

Any ideas on what I'm missing?

Answer

You have to inject the value of current into an Attribute Equals selector:

$("ul").find("[data-slide='" + current + "']");
Comments