Ich habe eine Reihe von Folien, die auf Abschnitten basieren:
<div id="slides">
<section id="first">
<section>
<table>
<thead>
</thead>
<tbody>
<tr id="somethingUnique">
...
</tr>
</tbody>
</table>
</section>
<section>
<table>
<thead>
</thead>
<tbody>
<tr id="somethingUnique">
...
</tr>
</tbody>
</table>
</section>
...
</section>
</div>
Ich muss die ID der letzten Zeile aus der Tabelle im letzten Abschnitt des ersten Abschnitts auswählen.
Ich verwende die folgende JQuery, um "undefiniert" zurück zu bekommen ... irgendwelche Ideen?
var lastListItem = $('#first:last-child table>tbody>tr:last').attr("id");
alert(lastListItem);
5 Antworten
$('#first table:last tr:last')
Oder:
$('#first tr:last')
http://jsfiddle.net/hunter/QMzHH/
Ruft die Nachkommen jedes Elements in der aktuellen Gruppe übereinstimmender Elemente ab, die nach Selektor, jQuery-Objekt oder Element gefiltert werden.
$("#first").find("tr:last").attr("id")
Oder einfacher in diesem Fall:
$("#first tr:last").attr("id")
var lastListItem = $("#first").find("section").last().find("tr").last().attr("id");
Ich bevorzuge die Verwendung von [0] .id anstelle von .attr ("id"), da es sich um einen Methodenaufruf weniger handelt. Wenn Sie jedoch nicht sicher sind, dass sich in dieser DOM-Position immer eine Tabelle befindet, ist attr sicherer.
Die anderen Antworten funktionieren, aber das Problem bei Ihrem Versuch ist die Tatsache, dass :last-child
muss auf das untergeordnete Element (section
) angewendet werden, nicht auf das übergeordnete Element (#first
). Folgendes sollte funktionieren
$('#first section:last-child table>tbody>tr:last').attr("id");
Und könnte vereinfacht werden
$('#first section:last-child tr:last-child').attr("id");
var lastListItem = $('#first section:last table tr:last').attr("id");