所以我有
<table class="the-table">
<tr>
<td>
<a class="clickthis">YO!</a>
</td>
</tr>
</table>
然后
$('.clickthis').click(function(){
alert($(this).closest('.the-table').html());
parent = $(this).closest('.the-table');
alert(parent.html());
alert($(parent).html());
});
但是在 Internet Explorer 中,第一个警报将正确警告表,第二个警报将返回不支持 html() 的错误,第三个警报将警报 null...
另一方面,在 Firefox 中,一切都会正确地警告 html
如何将 jquery 对象存储在 IE 中的变量中,以便可以执行上述操作?
我也尝试使用parents()而不是closest(),但它仍然不起作用
最佳答案
改成这样就可以在 IE 上运行了:
$('.clickthis').click(function(){
alert($(this).closest('.the-table').html());
var parent = $(this).closest('.the-table');
alert(parent.html());
alert($(parent).html());
});
显然,IE 与名为 parent
的全局变量存在某种冲突。当您将该变量设置为局部变量时,它会起作用。
正如 mu 太短
所指出的,它可能与 window.parent
发生冲突,IE9 可能会正确地将其设置为只读,因为它不是您想要的应该能够改变。
隐式全局变量(例如未声明的变量)是一种非常非常糟糕的做法的另一个原因。
关于javascript - 在变量中存储最近的和 parent 在 Internet Explorer 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8556346/