我有以下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中运行吗?
答案 0 :(得分:5)
当您使用parent
而不使用var
时,您将引用全局变量parent
,即全局(parent
)对象上的window
属性。
在IE中,window.parent
属性是只读的(实际上,属性的property attribute [[Writable]]
设置为false
或根本不设置。< / p>
更改行:
parent = self.parents('.transportRow');
到
var parent = self.parents('.transportRow');
应该做的伎俩。或者更改名称。
Crockford谈论此问题,建议使用that
代替self
。这个建议也适用于我所说的parent
。