Saturday, 24 June 2017

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

  • '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}']`)



    For older JavaScript environments (ES5 and earlier):



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

    No comments:

    Post a Comment

    casting - Why wasn't Tobey Maguire in The Amazing Spider-Man? - Movies & TV

    In the Spider-Man franchise, Tobey Maguire is an outstanding performer as a Spider-Man and also reprised his role in the sequels Spider-Man...