cab*_*ret 24 javascript jquery undefined typeerror
在做一些简单的jQuery DOM操作时遇到了一个非常模糊的错误.
触发错误的行如下:
$(this).closest('tr').remove();
如标题所述,错误是:
未捕获的TypeError:无法调用未定义的方法'toLowerCase'
在文件中:jquery-1.6.2.js.
我已经尝试过使用jQuery 1.6.3和jQuery 1.5.1,但没有任何改变.我仍然一直在收到错误.
上面的行绑定到一个按钮,当单击该按钮时,提交一个AJAX POST请求,然后成功时,它将删除它自己的按钮<tr>.我已经尝试过另一种方式:
$(this).parent().parent().remove() 但令我惊讶的是,这没有做任何事.
我正在使用Chrome,以防万一,但我在FF中遇到了同样的错误.
编辑:
这是我的代码:
$(".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();
});
Run Code Online (Sandbox Code Playgroud)
如果我把remove()放在if的某个地方之外,那就行了.当它在ajax调用/ if中时为什么不能工作?对我没用?:(
这里有什么帮助?提前致谢.
Poi*_*nty 41
我不知道你期望this在你的"成功"处理程序中有什么价值,但我敢打赌,这不是你的想法.保存this在"$ .ajax()"调用之外:
var clicked = this;
$.ajax(
// ...
success: function(res) {
if (res) {
$(clicked).closest('tr').remove();
}
else {
// ...
}
}
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
67321 次 |
| 最近记录: |