Hoffe jemand kann beraten. Probleme beim Versuch, eine Zeile zu entfernen, nachdem auf einen Link geklickt wurde.jQuery nächste TR-Auswahl
HTML
<table>
<tr><td>Some Data</td><td><a href="#" class="remove-row>Remove Row</a></td></tr>
<tr><td>Some Data</td><td><a href="#" class="remove-row">Remove Row</a></td></tr>
</table>
die JS Jetzt
$("a.remove-row").live('click', function(eve){
eve.preventDefault();
$.ajax({
type: 'GET',
url: '/someaction/',
dataType: 'json',
success: function(msg){
if(msg.error){
alert(msg.error);
}else{
$(this).closest('tr').remove();
alert(msg.success);
}
}
})
});
Dies sollte wirklich einfach sein buts seine die Zeile nicht entfernen. Nur für Tritte, wenn ich es in etwas wie
$('.remove-row').addClass('foo');
ändern Es wird foo zu allen Tabellenzeilen hinzufügen. So kann verstehen, warum es nicht die nächste Zeile entfernt.
Irgendwelche Ideen?
Vielen Dank im Voraus.
Nick - Schwacher Korrektur. Im 'success:' Callback bezieht sich 'this' auf das' xhr' Objekt, nicht auf 'window'. http://jsfiddle.net/WzeAh/ * Dies hat natürlich keine Relevanz in Bezug auf Ihre vorgeschlagene Lösung. * +1 – user113716
@patrick - Sorry, ich werde ein bisschen mehr in der Antwort klären, es verhält sich * wie "Fenster" für die aktuelle Verwendung, z '$ (this) .find (selector)' funktioniert genauso, als wäre '$ (this)' '$ (window)' oder '$ (document)'. –
Nick - Wenn ich Ihre Klarstellung nicht missverstanden habe, scheint es (innerhalb des Callbacks) nicht so, als ob '$ (this)' Ihnen das gleiche Verhalten wie '$ (document)' gibt, da ein '.find()' zurückkommt '0' stimmt überein. http://jsfiddle.net/WzeAh/1/ EDIT: '$ (window)' gibt auch ein "0" Ergebnis. – user113716