79 votes

Comment jQuery fonctionne-t-il lorsqu'il y a plusieurs éléments avec la même valeur d'ID ?

Je récupère les données du site Web AdWords de Google qui contient plusieurs éléments avec le même id .

Pourriez-vous s'il vous plaît expliquer pourquoi les 3 requêtes suivantes ne donnent pas la même réponse (2) ?

Démo en direct

HTML :

 <div>
    <span id="a">1</span>
    <span id="a">2</span>
    <span>3</span>
</div>

JS :

 $(function() {
    var w = $("div");
    console.log($("#a").length);            // 1 - Why?
    console.log($("body #a").length);       // 2
    console.log($("#a", w).length);         // 2
});

2voto

baqer_naqvi Points 337

Si vous avez plusieurs éléments avec le même identifiant ou le même nom, attribuez simplement la même classe à ces éléments multiples et accédez-y par index et effectuez l'opération requise.

   <div>
        <span id="a" class="demo">1</span>
        <span id="a" class="demo">2</span>
        <span>3</span>
    </div>

JQ :

 $($(".demo")[0]).val("First span");
$($(".demo")[1]).val("Second span");

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X