web-dev-qa-db-fra.com

jquery trouver l'élément suivant avec la classe

J'essaie de trouver l'élément suivant avec une classe "d'erreur" et de frapper un mur.

En regardant la démo sur le site de jQuery, cela devrait fonctionner, mais ne fonctionne pas.

$("button[disabled]").next().text("this button is disabled");

<div>
   <button disabled="disabled">First</button>
   <span>no overwrite</span>
   <span class="error"></span>
</div>

<div>
   <button>Second</button>
   <span></span>
</div>

<div>
   <button disabled="disabled">Third</button>
   <span>no overwrite</span>
   <span class="error"></span>
</div>

J'essaie de trouver le span ou div ou quoi que ce soit après l'élément en question, comme le bouton ci-dessus.

de sorte que la ligne du bouton désactivé doit indiquer "Aucun écrasement de ce bouton n'est activé"

J'ai essayé

$("button[disabled]").next(".error").text("this button is disabled");

en vain.

40
Loony2nz

Le problème est que vous utilisez la fonction de déplacement suivante plutôt que nextAll

$("button[disabled]").nextAll(".error").text("this button is disabled");

Lorsque vous utilisez next, il suffit de regarder l'élément "next" qui est

<span>no overwrite</span>

Ensuite, tout regarde tous les frères et sœurs qui sont à côté

69
PetersenDidIt

Essaye ça:

$("button[disabled=disabled]").parent().find("span.error").text("this button is disabled");

j'espère que ça aide. Sinan.

5
Sinan

next() ne fonctionnera pas dans ce cas car il doit être un frère pour que cela fonctionne. Dans ce cas, vous avez besoin de:

$("button[disabled]").parent().nextAll()
  .find("span.error:first").text("this button is disabled");
0
cletus