javascript - 覆盖 appendChild()

标签 javascript jquery

我正在尝试覆盖 appendChild方法,以便我可以控制动态创建的元素,并在插入页面之前根据需要对其进行修改。我尝试使用此示例代码,只是想看看它是否可以完成:

var f = Element.prototype.appendChild;
Element.prototype.appendChild = function(){f.apply(this, arguments); };

它适用于简单的示例。但是,当我尝试在此代码之后加载 jquery 时:
<script> 
    var f = Element.prototype.appendChild;
    Element.prototype.appendChild = function(){f.apply(this, arguments); };
</script>

<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'></script>

我得到这个错误:
Uncaught TypeError: Cannot read property 'selected' of undefined jquery.min.js:4
Uncaught TypeError: Cannot read property 'appendChild' of undefined

那么,为什么它不适用于 jquery 呢?有没有一种安全的方法来覆盖 appendChild ?

最佳答案

不建议覆盖 native 函数,但如果这样做,请确保返回附加元素,以防止使用 native “appendChild”函数返回值的代码出现问题:

window.callbackFunc = function(elem, args) {
  // write some logic here
}
window.f = Element.prototype.appendChild;
Element.prototype.appendChild = function() {
    window.callbackFunc.call(this, arguments);
    return window.f.apply(this, arguments);
};

关于javascript - 覆盖 appendChild(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27234489/

相关文章:

javascript - 如何通过javascript访问XUL叠加层中的元素?

javascript - 范围变量也在更改时更新非范围变量

javascript - 使用 jQuery 单击时垂直滚动 100%

javascript - 单选按钮事件未触发

javascript - 发件人未收到在 socker.io 上发送的消息

javascript - jQuery "stopImmediatePropagation is not a function"错误

php - 如何使用 AJAX 将数据发送到我的 PHP 脚本?

javascript - jQuery数据属性未获取值

javascript - Ajax验证问题

jquery - 如何在悬停时同时模糊照片和淡入文本(Jquery 或 Css)