Comment trouver l'élément suivant qui a un attribut ID à l'aide de jQuery

Lorsque je clique sur un lien, j'ai besoin de trouver la prochaine <section> qui a un attribut ID et le retour de son ID.

Donc le suivant le balisage et le javascript, je m'attends cliquant sur le lien à écrire "section_3" de la console.

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

et

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

Mais cela ne fonctionne pas. J'ai mis le code jusqu'ici dans jsFiddle.

Des idées pourquoi cela ne fonctionne pas?

  • .la prochaine n'est pas la recherche par le biais de tous les frères et sœurs, il ne regarde que l'immédiat prochaine. c'est dans les docs de l'api.
  • Si un sélecteur est fourni, il récupère le frère suivant seulement si elle correspond à celle que le sélecteur. Votre prochaine section n'a pas un id.
  • Excellent, j'ai évidemment mal interprété à dire "à la prochaine pour correspondre aux critères" non "à la prochaine si elle répond aux critères".
  • Vous n'êtes pas le premier, et de loin, ont fait de cette hypothèse.
InformationsquelleAutor Digbyswift | 2013-10-24