jQuery finden nächste element mit der Klasse
Ich habe eine ganz einfache Frage, die mich aß 4 Stunden und ist noch nicht gelöst: Wie finden Sie neben Zeitspanne mit bestimmten Klasse mit jQuery?
Ich habe den folgenden html -
<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>
und ich es validieren mit jQuery.
Ich möchte, wenn dort eine Fehlermeldung, erzeugt mit js (nur string), jQuery, um die nächstgelegene span mit Klasse .error
und zu text()
die Nachricht dort. Ich habe versucht, mit nextAll()
, next("span.error")
und eine Menge andere Dinge, aber nichts hat mir geholfen.
Vielen Dank im Voraus!
- Versuchen, die tatsächliche gerenderten html, wie durch den browser (Quelltext anzeigen), sondern das, nehme ich an, php.
- Was ist der root-Knoten ?
- das php ist nur ein string, aber ich habe versucht, Ihre Art und Weise und das Ergebnis ist das gleiche @jAndy: root Knoten, ich glaube du meinst die main-container? Es ist Tisch, wenn Sie Fragen, dass
- Wie kann man den Fehler erkennt? Was ist das element, das (dies), dass Sie ab? Was macht Ihr javascript derzeit Aussehen?
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; } }
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß, es ist vielleicht nicht genau das, was Sie suchen, aber wenn Sie haben die Eingabe, wie hier:
Dann können Sie nur:
das problem ist, dass .next() und .nextAll() Suche nur in den durch die Geschwister (Elemente mit dem gleichen übergeordneten).
Aus der jQuery-Dokumentation:
In Ihrem Fall haben Sie:
Als ich verstehe Ihre JQuery-code ausgeführt wird, der auf den Eingang, richtig? In diesem Fall vor dem Aufruf newxt() oder nextAll() sollten Sie zuerst die 2-Stufen, bis die und danach wählen Sie die nächste, weil es ist die, die Sie wollen, zu finden, so:
hier ist ein Beispiel, um es zu überprüfen:
http://jsfiddle.net/EM5Gw/
versuchen
alert
stattconsole.log
, und überprüfen Sie das Ergebnis..http://getfirebug.com/firebuglite
.Können Sie die
next('span.error')
:http://jsfiddle.net/wPZgg/