javascript - 在变量中存储最近的和 parent 在 Internet Explorer 中不起作用

标签 javascript jquery html internet-explorer firefox

所以我有

<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/

相关文章:

javascript - 使多个 AJAX 调用 $.when.apply($, array) 无法正常工作

javascript - React Router 4 与 Mobx 重新初始化组件

javascript - Chrome 的分页符解决方法 (javascript)

javascript - 使用 jquery 将复选框值放入数组中

html - Blogger 上的 float 社交媒体重叠

javascript - CSS 网格布局 - 如何使用 javascript 计算出鼠标所在的网格单元格?

javascript - jquery,位置 'close icon' div在大图的右上角

javascript - 如何使用链接而不是按钮来调用弹出窗口

javascript - 打开每个 iframe,每个 iframe 都有单独的按钮

javascript - 链接同一页面上的另一个 html (javascript)