jQuery - Abrufen des Textwerts einer Tabellenzelle in derselben Zeile wie ein angeklicktes Element
Ich auf einen link klicken in eine Zelle der Tabelle. Ich brauche, um den Wert einer bestimmten Zelle innerhalb dieser Tabelle Zeile.
<tr>
<td class="one">this</td>
<td class="two">that</td>
<td class="three">here</td>
<td class="four"><a href="#">there</a></td>
</tr>
<tr>
<td class="one">qwqw</td>
<td class="two">dfgh</td>
<td class="three">ui</td>
<td class="four"><a href="#">there</a></td>
</tr>
Habe ich eine click-handler angebracht, um den link in die vierte Zelle. Das click-handler, der eine Funktion aufruft, öffnet sich ein modales Fenster. Wenn ein Formular in der modalen vorgelegt wird, möchte ich auch den Wert von td class="zwei" aus der Zeile in der der link geklickt wurde, um diesen modal.
Hier ist die Funktion, sendet der modal - (das problem ist immer der richtige Wert für var, Etwas):
var Send = function() {
var Name = $( '#name' ).val();
var Something = $(this).closest('td').siblings('.two').text(); //version 1. doesn't work
var Something = $(this).closest('tr').siblings('td.two').text(); //version 2 also doesn't work
var Something = $(this).attr('class'); //version 3. just a test but also doesn't work
$.ajax( {
async: false,
data: { name: Name, somedata: Something },
type: 'POST',
url: the url
});
};
Das problem ist, dass ich nicht den richtigen Wert für Etwas. Es sollte der Wert von td class= " zwei in der gleichen Zeile wie das angeklickte element.
Den Weg, dies alles kommt zusammen. Klicken Sie auf den Ziel-link, das aufrufen einer Methode namens Send_Click(). Send_Click hat einige Validierungen und dann ruft Send (), aber der Wert für Etwas, das nie aufgefüllt. Ist dies, weil this
ist nicht das, was ich mir denke, es ist? Hjelp!
InformationsquelleAutor der Frage Stuart | 2010-02-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du willst
.children()
statt (Dokumentation hier):InformationsquelleAutor der Antwort Nick Craver
Nick hat die richtige Antwort, aber ich wollte noch hinzufügen könnten Sie auch die Zelle Daten, ohne dass der name der Klasse
:eq(#)
hat eine null-basierten index (link).InformationsquelleAutor der Antwort Mottie
sollte es funktionieren:
InformationsquelleAutor der Antwort hhhqsun
so können Sie mit parent() zu erreichen, um die übergeordneten tr und dann Verwendung finden, zu sammeln, der td mit der Klasse zwei
oder
verwenden, so viel als parent() was auch immer die Tiefe des angeklickten Objekts gemäß der tr-Reihe
hoffe, das funktioniert...
InformationsquelleAutor der Antwort Yasin Ergul
Dies funktioniert auch,
InformationsquelleAutor der Antwort Anna.P