我在进行一些简单的 jQuery DOM 操作时遇到了一个非常模糊的错误。
触发错误的行如下:
$(this).closest('tr').remove();
如标题所述,错误是:
未捕获的类型错误:无法调用未定义的方法“toLowerCase”
在文件中:jquery-1.6.2.js
.
我已经尝试过 jQuery 1.6.3 和 jQuery 1.5.1,但没有任何改变。我仍然不断收到错误。
上面的行绑定到一个按钮,单击该按钮时,会提交 AJAX POST 请求,成功后,它会删除自己的请求<tr>
。我已经尝试过另一种方法:
$(this).parent().parent().remove()
但令我惊讶的是,这没有任何作用。
我正在使用 Chrome,以防万一,但我在 FF 中遇到同样的错误。
EDIT:
这是我的代码:
$(".remove").live('click', function(e) {
var str = $(this).attr('id').match(/\[(.*?)\]\[(.*?)\]/);
var type = str[1];
var id = str[2];
// IF I PUT THE remove() HERE, IT WORKS.
$.ajax({
type: 'POST',
url: '/admin/ajax_remove_event_detail',
data: {type: type, id: id},
success:function(res) {
if(res)
{
$(this).closest('tr').remove();
// this gives me an error
}
else
{
// error handling
}
}
});
e.preventDefault();
});
如果我将remove() 放在if 之外的某个地方,它就会起作用。为什么它在 ajax 调用/if 内部时不起作用?对我来说没有意义吗? :(
这里有什么帮助吗?提前致谢。