jQuery trouver à côté de l'élément avec la classe
J'ai une très simple question, qui a mangé moi 4 heures et n'est pas encore résolu: Comment trouver la prochaine portée avec classe spécifique avec jQuery?
J'ai le code html suivant
<tr>
<td align="right">Име: </td>
<td align="left">
<input type="text" value="<?=$profileSQL['user_name']; ?>" name="user_name" class="input required" />
</td>
</tr>
<tr>
<td align="right" colspan="2">
<span class="error"></span>
</td>
</tr>
et je valide avec jQuery.
Je veux s'il y a un message d'erreur généré avec js (juste une chaîne de caractères), jQuery pour trouver le plus proche span avec classe .error
et à text()
le message. J'ai essayé avec nextAll()
, next("span.error")
et beaucoup d'autres choses, mais rien ne m'a aidé.
Merci d'avance!
Essayez de montrer le réel de rendu html, tel que vu par le navigateur (voir la source) plutôt que de l', j' supposer, php.
Qu'est-ce que le nœud racine ?
cette php est juste une chaîne, mais j'ai essayé votre chemin et le résultat est le même @jAndy: Par nœud racine je pense que tu veux dire le conteneur principal? C'est le tableau, si vous êtes en demandant à ce que
Comment détecter l'erreur? Qu'est-ce que l'élément (ce) que vous êtes partant? Qu'est-ce que votre javascript actuellement?
Qu'est-ce que le nœud racine ?
cette php est juste une chaîne, mais j'ai essayé votre chemin et le résultat est le même @jAndy: Par nœud racine je pense que tu veux dire le conteneur principal? C'est le tableau, si vous êtes en demandant à ce que
Comment détecter l'erreur? Qu'est-ce que l'élément (ce) que vous êtes partant? Qu'est-ce que votre javascript actuellement?
function validate() { var err = 0; $("#profileForm").find(".required").each(function(){ var elem = $(this); if(elem.attr("name") == "user_name") { if(!elem.val()) { err++; elem.addClass("errorInput"); elem.next(".error").text(nameErrEmptyMsg); } else if(elem.val().length < 5) { err++; elem.addClass("errorInput"); elem.next(".error").text(nameErrShortMsg); } } else { } }); if(err > 0) { return false; } }
OriginalL'auteur Emil Avramov | 2011-03-05
Vous devez vous connecter pour publier un commentaire.
Je sais que cela peut ne pas être exactement ce que vous cherchez, mais si vous avez l'entrée, comme ceci:
Alors vous pouvez simplement faire:
OriginalL'auteur Groovetrain
le problème, c'est que .next() et .nextAll() la recherche à travers les frères et sœurs (les éléments qui ont le même parent).
De jQuery documentation:
Dans votre cas, vous avez:
Que je comprends de votre JQuery code est exécuté à l'entrée, à droite? Dans ce cas, avant d'appeler newxt() ou nextAll (), vous devez d'abord monter de 2 niveaux, jusqu'à ce que le et ensuite choisir le prochain, car il est que vous voulez trouver, donc:
voici un exemple de travail pour le vérifier:
http://jsfiddle.net/EM5Gw/
OriginalL'auteur paladin
essayer
utilisation
alert
au lieu deconsole.log
, et vérifiez le résultat..Salut, concernant FIREBUG et IE, vous pouvez obtenir FIREBUG-LITE qui fonctionne avec IE6+. Voir
http://getfirebug.com/firebuglite
.OriginalL'auteur diEcho
Vous pouvez utiliser le
next('span.error')
:http://jsfiddle.net/wPZgg/
avez-vous pris un coup d'oeil à la jsfiddle? n'est-ce pas ce que vous voulez qu'il fasse? aussi, ce que jquery version utilisez-vous?
Mise à jour le Violon JamesHalsall par l'ajout de ton tr est à l'intérieur d'un tableau qui est à l'intérieur d'un div de sorte qu'il sera effectivement rendu. Ensuite, vous trouverez que votre code ne fonctionne pas.
OriginalL'auteur JamesHalsall