You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IE11中remove()函数未定义求助:Chrome正常运行IE11报错

解决IE11中remove()函数未定义的问题

嘿,这个坑我踩过好多次了!IE11对现代DOM API的支持确实跟不上趟,你遇到的问题根源就在这里:

你代码里的$("#popSelf").children()[1]获取到的是原生DOM元素,而IE11的原生DOM元素并没有实现remove()方法(这个方法是ES6之后才被加入标准的,IE11停更太早没赶上),但Chrome等现代浏览器已经支持了,所以才会出现跨浏览器的差异。

给你两个靠谱的解决办法:

方法一:用jQuery的方法来操作(最推荐)

直接用jQuery的eq()方法获取对应位置的元素,它返回的是jQuery封装后的对象,jQuery的remove()方法已经做了全浏览器兼容,包括IE11:

修改后的完整代码:

function restartAnimatorSelf() { 
    var el = $('#selfLabel'), 
        newone = el.clone(true); 
    el.before(newone); 
    // 用eq(1)替代[1],获取jQuery对象后调用remove
    $("#popSelf").children().eq(1).remove(); 
}

方法二:给IE11补全原生remove()方法

如果你更倾向于用原生DOM操作,可以给Element原型添加兼容的remove()方法,这样原生元素也能调用这个方法了:

// 先判断浏览器是否已经支持remove方法,避免重复定义
if (!('remove' in Element.prototype)) {
    Element.prototype.remove = function() {
        // 原生删除逻辑:通过父节点移除子元素
        if (this.parentNode) {
            this.parentNode.removeChild(this);
        }
    };
}

把这段代码放在你的脚本最前面,之后原来的代码就可以在IE11里正常运行了。

两种方法都能解决问题,个人更推荐第一种,毕竟用jQuery的话能少写很多兼容代码,也更符合你现有代码的风格~

内容的提问来源于stack exchange,提问作者Gontse Ranoto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 06:23:57