So finden Sie das nächste element, welches ein ID-Attribut mit jQuery

Wenn ich auf einen link klicken, ich muss die nächsten <section> mit einem ID-Attribut und gibt die ID.

So gegeben, das folgende markup und javascript, würde ich erwarten, dass ein Klick auf den link zu schreiben "section_3" auf der Konsole.

<section id="section_1">
    <a href="#" class="findNext">Find</a>
</section>
<section></section>
<section id="section_3"></section>
<section id="section_4"></section>

und

$('a.findNext').click(function() {
    var nextSectionWithId = $(this).closest("section").next("section[id]");
    if (nextSectionWithId) {
        var sectionId = nextSectionWithId.attr('id');
        console.log(sectionId)
    }
});

Aber das funktioniert nicht. Ich habe der code hier oben in jsFiddle.

Irgendwelche Ideen, warum dies nicht funktioniert?

.als Nächstes durchsucht nicht über alle folgenden Geschwister, es sehe nur auf den unmittelbaren nächsten. es ist in den api-docs.
Wenn ein Selektor vorgesehen ist, es ruft das nächste Geschwister nur, wenn Sie mit diesen Selektor. Ihre nächste Abschnitt nicht mit einer id.
So hervorragend, dass ich offensichtlich falsch interpretiert es im Sinne von "der nächste match-Kriterien" nicht "der nächste, wenn es die Kriterien erfüllt".
Du bist nicht der erste, bei weitem aus, dass er diese Annahme.

InformationsquelleAutor Digbyswift | 2013-10-24

Schreibe einen Kommentar