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);
6
apttap 8 Okt. 2012 im 21:44

5 Antworten

Beste Antwort
$('#first table:last tr:last')

Oder:

$('#first tr:last')

http://jsfiddle.net/hunter/QMzHH/

20
hunter 8 Okt. 2012 im 17:45

.find ():

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")

BEISPIEL

0
Chase 8 Okt. 2012 im 17:55
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.

1
Joe Johnson 8 Okt. 2012 im 17:47

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");

http://jsfiddle.net/e7mUD/1

0
Juan Mendes 8 Okt. 2012 im 17:59
var lastListItem = $('#first section:last  table tr:last').attr("id");
0
Anoop 8 Okt. 2012 im 17:46