2016-12-21 3 views
0

Ich habe die folgende Menüstruktur:Ist es möglich, Geschwister von Eltern zu bekommen?

<ul class="nav-menu"> 
    <li class="menu-item> 
     <a class="dropdown-toggle" href="">Item 1 <span class="dropdown-arrow"></span></a> 
     <ul class="sub-menu"> 
      <li class="menu-item">Item 1.1</li> 
     </ul> 
    </li> 
    <li class="menu-item">Item 2</li> 
    <li class="menu-item"> 
     <a class="dropdown-toggle" href="">Item 3 <span class="dropdown-arrow"></span></a> 
     <ul class="sub-menu"> 
      <li class="menu-item"> 
       <a class="dropdown-toggle" href="">Item 3.1 <span class="dropdown-arrow"></span></a> 
       <ul class="sub-menu"> 
        <li class="menu-item">Item 3.1.1</li> 
       </ul> 
      </li> 
     </ul> 
    </li> 
    <li class="menu-item">Item 4</li> 
</ul> 

Ich habe ein bisschen von JS-Code, die Klicks reagiert:

$('.nav-menu').find('.dropdown-toggle').click(function(e) { 
    var _this = $(this); 
    var _arrow = _this.children('.dropdown-arrow'); 

    // Get all '.dropdown-arrow' elements above this 

    e.preventDefault(); 
}); 

Zum Beispiel, wenn ich Punkt 3.1 klicken, ich brauche seine "zu bekommen .dropdown-arrow 'span und die darüber, das ist das in Punkt 3.

Ist das möglich? Wenn das so ist, wie?

enter image description here

Vielen Dank im Voraus

Antwort

1

Sie nicht Geschwister der Eltern, sie sind Kinder von Eltern. Sie müssen verwenden:

_this.closest('.menu_item').closest('.menu_item').find('.dropdown-arrow'); 

Der obige Code wird die beiden zurückgeben.

+0

Danke! Was ist, wenn die Menüstruktur nicht definiert ist? Kann ich eltern() anstelle von engster() verwenden? – user1991185

+1

@ user1991185 Sie haben absolut Recht. Sie müssen die 'eltern()' hier verwenden. –

Verwandte Themen