2011-08-08 2 views
0

Salut J'ai un menu déroulant en utilisant LI & UL tag.Comment obtenir le parent de LI

Par exemple.

<ul> 

     <li><a href="#">Parent 1</a> 
     <ul> 
      <li id = "Child 1"><a href="#">Child 1</a></li> 
      <li id = "Child 2"><a href="#">Child 2</a></li> 
     </ul> 
     </li> 
     <li><a href="#">Parent 2</a> 
     <ul> 
      <li id = "Child 3"><a href="#">Child 3</a></li> 
      <li id = "Child 4"><a href="#">Child 4</a></li> 
     </ul> 
     </li> 
</ul> 

Maintenant, mon problème est quand je clique sur enfant 1 puis dans la div résultante devrait afficher Parent 1: 1 enfant. Comment puis-je atteindre cet objectif?

Merci.

Répondre

0
<ul> 

     <li><a href="#">Parent 1</a> 
     <ul> 
      <li id = "Child 1"><a href="#" onclick="alert(this.parentNode.parentNode.parentNode.firstChild.innerText + ':' + this.innerText)">Child 1</a></li> 
      <li id = "Child 2"><a href="#">Child 2</a></li> 
     </ul> 
     </li> 
     <li><a href="#">Parent 2</a> 
     <ul> 
      <li id = "Child 3"><a href="#">Child 3</a></li> 
      <li id = "Child 4"><a href="#">Child 4</a></li> 
     </ul> 
     </li> 
</ul> 

La raison en est que vous cliquez sur le lien. Donc, vous devez aller à travers le ul, au li, et ensuite obtenir son premier client, qui est le lien contenant Parent1.

2
this.parentElement().getAttribute('id'); 

cela fera l'affaire

this est le lien cliqués

donc si la méthode est

function linkClick(obj) 
{ 
    alert(obj.parentElement().getAttribute('id') + ':' + obj.innerHTML); 
} 

tout ce que vous devez faire est de joindre l'événement onclick à votre lien

<a onclick="linkClick(this); return false;" href="#">Child 1</a>