Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery$(this).parents(';.cssClassName';)只在IE中找到窗口,但在其他浏览器中也可以使用_Javascript_Jquery_Html_Internet Explorer - Fatal编程技术网

Javascript jquery$(this).parents(';.cssClassName';)只在IE中找到窗口,但在其他浏览器中也可以使用

Javascript jquery$(this).parents(';.cssClassName';)只在IE中找到窗口,但在其他浏览器中也可以使用,javascript,jquery,html,internet-explorer,Javascript,Jquery,Html,Internet Explorer,我有以下jquery代码: jQuery(function ($) { $(document).on('click', '.del', function () { var self = $(this); parent = self.parents('.transportRow'); parent.remove(); }); }); 当我在类为“transportRow”的div中单击类为“del”的链接时,应该删除该div 这在

我有以下jquery代码:

 jQuery(function ($) {
    $(document).on('click', '.del', function () {
        var self = $(this);
        parent = self.parents('.transportRow');
        parent.remove();
    });
});
当我在类为“transportRow”的div中单击类为“del”的链接时,应该删除该div

这在Webkit和Firefox中运行良好,但在IE中不起作用

我得到一个错误,告诉我对象不支持属性或方法“remove”

当我在调试器中检查它时,父元素似乎是窗口,而不是div元素


有人知道如何在IE中运行此脚本吗?

当您在不使用
var
的情况下使用
parent
时,您引用全局(
window
)对象上的全局变量
parent
属性

在IE中,属性是只读的(实际上是属性的
[[Writable]]
被设置为
false
或根本没有设置)

更改行:

parent = self.parents('.transportRow');

我们应该做到这一点。或者改名


Crockford谈到了这个问题,并建议使用
that
而不是
self
。这个建议也适用于
parent
我说。

当您在不使用
var
的情况下使用
parent
时,您引用全局变量
parent
a.k.a.全局(
窗口
)对象上的
parent
属性

在IE中,属性是只读的(实际上是属性的
[[Writable]]
被设置为
false
或根本没有设置)

更改行:

parent = self.parents('.transportRow');

我们应该做到这一点。或者改名


Crockford谈到了这个问题,并建议使用
that
而不是
self
。我说,这个建议也适用于
parent

尝试将
self
更改为其他名称,在JavaScript中,
self
window
@ranganadh,但情况并非总是如此
self
可以设置为任何值。通常,您会看到
var self=this。在这种情况下,
self
基于
的当前上下文。它可以是窗户,但不一定是。请参阅答案以供参考…请选择哪个版本…您是否尝试过记录
self
parent
?尝试
console.log(self)
console.log(父级)
查看值包含的内容。奇怪的是,这似乎解决了它:
var parent=self.parents('.transportRow')(已测试IE10)编辑:看起来像全局
父级
变量引用IE10上的窗口(其他???)尝试将
self
更改为其他名称,在JavaScript中,
self
Window
@ranganadh,但情况并非总是如此
self
可以设置为任何值。通常,您会看到
var self=this。在这种情况下,
self
基于
的当前上下文。它可以是窗户,但不一定是。请参阅答案以供参考…请选择哪个版本…您是否尝试过记录
self
parent
?尝试
console.log(self)
console.log(父级)
查看值包含的内容。奇怪的是,这似乎解决了它:
var parent=self.parents('.transportRow')(测试过的IE10)编辑:看起来像是全局
父级
变量指的是IE10上的窗口(其他???+1)提到
,尽管上面的注释解释了使用self的合法性;我看不出有什么理由把自己和代码放在这样一种情况下:通过JavaScript的古怪作用域,它仍然“可能”成为一个问题(尽管这完全是一种偏好)+1提到
,尽管上面的评论解释了使用self的合法性;我看不出有什么理由把自己和代码放在这样的情况下:通过JavaScript的古怪作用域,它仍然“可能”成为一个问题(尽管这完全是一种偏好)