Nehmen wir an, wir haben diese Liste:

<ul title="Fruit">
<li onClick="func(this)">Apple</li>
<li onClick="func(this)">Banana</li>
</ul>
<ul title="Meat">
<li onClick="func(this)">Chiken</li>
<li onClick="func(this)">Duck</li>
</ul>

Ist es möglich zu finden, von welcher ul auf die li geklickt wird?

0
a1204773 7 Okt. 2012 im 15:57

4 Antworten

Beste Antwort

Ja, benutze parentNode:

<script type="text/javascript">
    function func(el) {
      alert(el.parentNode.title);    
    }
</script>

<ul title="Fruit">
<li onClick="func(this)">Apple</li>
<li onClick="func(this)">Banana</li>
</ul>
<ul title="Meat">
<li onClick="func(this)">Chiken</li>
<li onClick="func(this)">Duck</li>
</ul>​​​​​

Beachten Sie auch, dass value nur für form Elemente wie input und select verwendet wird.

DEMO .

1
João Silva 7 Okt. 2012 im 12:00

obj.parentNode oder einfach jQuery verwenden: $(obj).parent()

0
Koerr 7 Okt. 2012 im 12:02
if(this.parentNode.title === "Fruit") {
 // first one
}
else {
   // the other ul
}
1
Jashwant 7 Okt. 2012 im 12:02

Sie sollten einfach this an die Funktion übergeben und .parentNode verwenden, um das übergeordnete Element abzurufen.

function func(element) {
  var parent = element.parentNode;
  // ...
}
1
xdazz 7 Okt. 2012 im 12:00