<ul id ="myList">
<li><a href="www.example.com">link</a></li>
</ul>
Wie kann ich die ID der ul (myList) mit jQuery abrufen? Mein J-Script-Ereignis wird ausgelöst, wenn auf einen Link geklickt wird. Ich habe versucht:
$(this).parent().attr('id');
Aber es bekommt die ID des Li, ich muss einen höher gehen, und ich kann den Klick auch nicht an das Li anhängen.
parent().parent()
ist definitiv schneller als,parents('ul')
da letzterer bis zum <html> -Tag nach <ul>-Tags sucht und alle zurückgibt.closest('ul')
ist eine gute Wahl, da die Suche nach dem ersten Auftreten beendet wird, das nächste jedoch auch das Element enthält, auf das es aufgerufen wird. Vielleicht$(this).parent().closest('ul')
ist es die beste Wahl, es sei denn, das$(this)
wird niemals ein <ul> sein.$(this).closest('ul').attr('id');
quelle
Hier sind 3 Beispiele:
$(document).on('click', 'ul li a', function (e) { e.preventDefault(); var example1 = $(this).parents('ul:first').attr('id'); $('#results').append('<p>Result from example 1: <strong>' + example1 + '</strong></p>'); var example2 = $(this).parents('ul:eq(0)').attr('id'); $('#results').append('<p>Result from example 2: <strong>' + example2 + '</strong></p>'); var example3 = $(this).closest('ul').attr('id'); $('#results').append('<p>Result from example 3: <strong>' + example3 + '</strong></p>'); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <ul id ="myList"> <li><a href="www.example.com">Click here</a></li> </ul> <div id="results"> <h1>Results:</h1> </div>
Lassen Sie mich wissen, ob es hilfreich war.
quelle