Ich klicke auf einen Link in einer Tabellenzelle. Ich muss den Wert einer bestimmten Zelle in derselben Tabellenzeile abrufen.
<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>
Ich habe einen Click-Handler an den Link in der vierten Zelle angehängt. Dieser Click-Handler ruft eine Funktion auf, die ein modales Fenster öffnet. Wenn ein Formular im Modal gesendet wird, möchte ich auch den Wert von td class=”two” aus der Zeile, in der auf den Link geklickt wurde, an dieses Modal übergeben.
Hier ist die Funktion, die das Modal sendet (der Problembereich erhält den richtigen Wert für var Something):
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 erhalten kann. Es sollte der Wert von td class=two in derselben Zeile wie das angeklickte Element sein.
Die Art und Weise, wie das alles zusammenkommt, ist. Klicken Sie auf den Ziellink, der eine Methode namens Send_Click() aufruft. Send_Click führt einige Validierungen durch und ruft dann Send() auf, aber der Wert für Something wird nie ausgefüllt. Ist das weil this
ist nicht das, was ich denke? Hallo!