希望有人能提供建議。一旦鏈接被點擊,試圖刪除行就會出現問題。jQuery最接近的TR選擇
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>
現在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);
}
}
})
});
這應該是真正簡單的擊打它不刪除行。只是爲了踢,如果我改變它像
$('.remove-row').addClass('foo');
它會將foo添加到所有錶行。所以可以理解爲什麼它沒有刪除最近的行。
任何想法?
先進的感謝。
尼克 - 小幅調整。在'success:'回調中,'this'是指'xhr'對象,而不是'window'。 http://jsfiddle.net/WzeAh/ *這當然與您提出的解決方案沒有關係。* +1 – user113716 2010-08-23 15:33:13
@patrick - 對不起,我會在答案中進一步澄清,它*表現*像當前使用的「窗口」,例如'$(this).find(selector)'的作用與'$(this)'爲'$(window)'或'$(document)'相同。 – 2010-08-23 15:57:35
尼克 - 除非我誤解你的說明,它似乎(在回調中)好像'$(this)'給你'$(document)'相同的行爲,因爲做一個'.find()'返回'0'匹配。 http://jsfiddle.net/WzeAh/1/編輯:'$(窗口)'也給出了'0'結果。 – user113716 2010-08-23 16:05:33