javascript - jQuery/IE10-SCRIPT438 : Object doesn't support property or method 'data'

标签 javascript jquery internet-explorer

jQuery .data() 似乎在 IE10 上被破坏了。

下面的代码在 Chrome 和 FF 上运行良好,但会触发错误

SCRIPT438: Object doesn't support property or method data

在 IE10 中。

知道为什么/如何让它在 IE10 下工作吗?

$(document).ready(function() {
   $('body').on("click", ".clickme", function(){
       parent = $(this).parents(".container");
       html = $(parent.data('my-target')).html();
       $('#result').html(html);
   });           
});
#result {
    margin: 15px;
}

#second, #fourth {
    display: none;
}

.clickme {
    margin: 5px;
    padding: 10px;
}
<script src="https://code.jquery.com/jquery-2.1.4.js"></script><div class="container" data-my-target="#second">
    <div class="clickme" id="first">Click me</div>
    <div id="second">Hello World</div>
</div>
<div class="container" data-my-target="#fourth">
    <div class="clickme" id="third">Cliquez-moi</div>
    <div id="fourth">Bonjour !</div>
</div>
<div id="result">
    
</div>
    

在 jsbin 上查看:http://jsbin.com/hovuwequvu/edit?html,css,js,output

最佳答案

parent 是一个糟糕的(隐含的全局)变量名。它与 window.parent 属性冲突:

$(document).ready(function() {
   $('body').on("click", ".clickme", function(){
       parent = $(this).parents(".container");
   //  ^^ You are attempting to write to the window.parent property here
       html = $(parent.data('my-target')).html();
       $('#result').html(html);
   });           
});

将其更改为更合适的名称并将其声明为变量:

$(document).ready(function() {
   $('body').on("click", ".clickme", function(){
       var parentContainer = $(this).parents(".container");
       var html = $(parentContainer.data('my-target')).html();
       $('#result').html(html);
   });           
});

关于javascript - jQuery/IE10-SCRIPT438 : Object doesn't support property or method 'data' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31944012/

相关文章:

html - IE8透明div在图像上

javascript - jQuery 右键单击​​上下文菜单帮助!

javascript - 代码审查,帮助改进此代码以避免重复

javascript - Nodejs 运行 Promise 但仍然 Undefine 不是一个函数

jquery - 缩放页面时如何阻止元素换行?

javascript - 如何在远程函数中传递两个值?

html - 在 IE 中设置 SELECT 的高度

javascript - 如何在单元测试中处理嵌套异步操作

javascript - 我应该把我的第 3 方 javascript 放在 Rails 中的哪里

javascript - 动态调色板 - Jquery?