Espérons que quelqu'un peut vous conseiller. Avoir des problèmes en essayant de supprimer une ligne une fois qu'un lien a été cliqué.jQuery TR plus proche sélection
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>
Maintenant, la JS
$("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);
}
}
})
});
Cela devrait être simple, réel BUTS son ne pas enlever la ligne. Juste pour coups de pied si je le change à quelque chose comme
$('.remove-row').addClass('foo');
Il va ajouter toto à toutes les lignes de la table. Donc, peut comprendre pourquoi il ne supprime pas la ligne la plus proche.
Des idées?
Merci à l'avance.
Nick - Correction mineure. Dans le 'rappel:' callback, 'this' fait référence à l'objet' xhr', pas 'window'. http://jsfiddle.net/WzeAh/ * Ceci, bien sûr, n'a aucune pertinence par rapport à votre solution proposée. * +1 – user113716
@patrick - Désolé, je vais clarifier un peu plus dans la réponse, il * se comporte * comme «fenêtre» pour l'utilisation actuelle, par exemple '$ (this) .find (selector)' fonctionne de la même façon que si '(this)' était '$ (window)' ou '$ (document)'. –
Nick - A moins que j'aie mal compris votre clarification, il ne semble pas (dans le rappel) que $ (this) vous donne le même comportement que $ (document) ', puisque faire un' .find() 'renvoie "0" correspond. http://jsfiddle.net/WzeAh/1/ EDIT: '$ (window)' donne aussi un résultat '0'. – user113716