Holen Sie sich die übergeordnete Zeile und finden Sie ein element in JQuery
Habe ich eine checkbox in eine Spalte der html-Tabelle. Wenn ich überprüfen, oder deaktivieren Sie es, ich will einen bestimmten text angezeigt/entfernt aus einer text-area in die nächste Spalte derselben Zeile.
Ich habe die folgenden:
$(this).parent().parent().find('textarea').text = 'some text'
und auch
$(this).parent().parent().find('textarea').val = 'some text'
aber es funktioniert nicht.
Html wie:
<tr>
<td>
<input type="checkbox" />
</td>
<td>
<textarea>
</td>
</tr>
Möchte ich, um das textarea mit dem gleichen tr von der checkbox ich check
UPDATE
Fand ich, dass ich verwenden soll .val("some text")
nun aber die Funktion wird nur aufgerufen, wenn ich auf die checkbox in der ersten Zeile. Nicht für den rest
Nur zu sagen, aber es sollte
Sieht Ihre HTML-Folgen der gleichen Struktur in jeder Zeile? und was ist der rest der jQuery für das klicken auf die checkbox?
gleiche Struktur.Was ich brauche ist, wenn ich auf eine checkbox (on/off) in eine Zeile einer text-area in die nächste Spalte aktualisiert werden.Aber mit
Siehe meine aktualisierte Antwort
<textarea></textarea>
Sieht Ihre HTML-Folgen der gleichen Struktur in jeder Zeile? und was ist der rest der jQuery für das klicken auf die checkbox?
gleiche Struktur.Was ich brauche ist, wenn ich auf eine checkbox (on/off) in eine Zeile einer text-area in die nächste Spalte aktualisiert werden.Aber mit
$("#my_cb").click( function() {
es funktioniert nicht, weil nun alle Checkboxen haben my_cb
wie id und ich weiß nicht, wie eindeutig zuordnen klicken Sie auf die FunktionSiehe meine aktualisierte Antwort
InformationsquelleAutor Jim | 2013-08-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sich das Problem, wie Sie versuchen, den Wert nicht, wie Sie finden, das element
versuchen, diese
Siehe hier für mehr info .val()
UPDATE
element
ID
muss eindeutig sein, damit Sie nicht die Wiederverwendung der gleichen. Geben Sie Ihren Kontrollkästchen eindeutige id ' s ich.e "chkOne", "chkTwo" etc. Dann verwenden Sie eine Klasse, die auf alle Kontrollkästchen, die Sie verwenden möchten, führen Sie diese Funktion aus. ich.eclass="chkSelection"
. Dann ändern Sie Ihre jQuery zu schauen, wie dieseDiese Weise alle deine Checkboxen mit einer Klasse von "chkSelection", wenn geändert wird, führen Sie die Funktionalität, um den nächsten textarea und legen Sie die text.
change
?Fügen Sie eine if-Anweisung zu testen, ob es aktiviert ist - siehe mein update
InformationsquelleAutor Mark Walters
Ihnen nur Bezeichner, wie Sie sicherlich brauchen, verweisen Sie Sie irgendwie an anderer Stelle (und wenn Ihre Struktur ändert, es wird nicht brechen, als ein side-effect) - beachten Sie die Verwendung von
val()
auch:Dann können Sie verweisen Sie explizit:
Halten Sie es einfach.
Mag die Idee, aber was, wenn er viele von diesen Zeilen? Nicht gegen die ID-Idee, aber wäre es nicht besser, speichern Sie die ID des Ziels in einem
data-
- Attribut der checkbox so, dass die IDs müssen nicht mehr hart codiert in der JS?Sicher, klingt wie eine vernünftige Verbesserung; aber die id noch die id, finde es einfach vom aktuellen element und vielleicht verwenden Sie ein "suffix" - variable zu finden, die wichtige Sache, anstatt zu wiederholen, die data-Attribute über und über.
InformationsquelleAutor Grant Thomas
versuchen, diesen code
InformationsquelleAutor Sohil Desai
Geben, generische Klassen, um alle Kontrollkästchen und Texteingabefelder... In der .change () - Funktion der checkbox-versuchen Sie es mit dieser: (unter Berücksichtigung der Klasse der textarea textarea ist)
Geben Sie eine Klasse, um das Kontrollkästchen und die textarea anstelle von id.. helfen soll, nehme ich an
ID immer eindeutig sein muss, während die Klasse kann generisch sein.. Auch wenn Sie (diese).Eltern.finden(), ändern Sie auftreten, nur um das spezifische element in dieser Klasse
Auch das hinzufügen von class-Attribut werden auch dann effizient, wenn Sie auch mit Checkboxen, die die Arbeit für einen anderen Zweck, in form...
Ich hoffe, mein edit hilft...
InformationsquelleAutor Sid
Um zu überprüfen, ob die checkbox markiert/nicht markiert ist, versuchen Sie
attr('checked')..
Auch, um die Werte aller Kontrollkästchen aktiviert ist, versuchen Sie'input[type="checkbox"]:checked').val()
InformationsquelleAutor Sid
meine Lösung
InformationsquelleAutor dann
Wenn Sie möchten, können Sie zum ändern der text-und ausschalten durch aktivieren/deaktivieren der box, so etwas wie dies funktionieren würde:
Diese hören würde, für jede änderung in einem Feld auf Ihrer Seite. Wenn ein Kontrollkästchen änderungen, wird es markieren Sie das Ankreuzfeld ' s Eltern s Geschwister (die nächste
<td>
element nach der einen Umgebung auf das Kontrollkästchen), und legen Sie seine text 'Text!', wenn das Feld ausgewählt ist, oder ein leerer string, wenn das Feld nicht aktiviert ist.Der Vorteil dieser Methode ist, abgesehen vom text - /aus-Funktionalität, ist, dass Sie nicht brauchen, um zuweisen von CSS-Klassen/ids zu arbeiten.
InformationsquelleAutor GChorn