Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is parentsUntil() the best function to use? Jquery

Given the html:

     <div class="a">
        <div class="b">
           <div class="c">
             <div class="d">
             </div>
           </div>
          <div class="d">
          </div>
        </div>
     </div>

Im interested in the selecting the parent element with class a applied to it when any element with the class 'd' is clicked.

I have the following javascript / jQuery, but it seems very messy. Is there a neater way?

<script>
   $('.d').click(function(){
      var elementA =  $(this).parentsUntil('.a').last().parent();    
   })
</script>
like image 375
maxp Avatar asked Oct 12 '11 16:10

maxp


2 Answers

You want $(this).closest('.a').

like image 81
SLaks Avatar answered Oct 18 '22 22:10

SLaks


you can also do:

$(".d").click(function() {
    // parents() will walk up through parent nodes. If you
    // pass a selector, the set will be filtered. If not,
    // you get the full list of parent elements.
    var elementA = $(this).parents(".a");
});

docs here.

hope that helps! cheers.

like image 28
keeganwatkins Avatar answered Oct 18 '22 22:10

keeganwatkins