在IE8中Javascript .replace()方法失败

时间:2014-02-19 04:58:44

标签: javascript jquery internet-explorer replace

为什么这在IE8中不起作用?

var accordion = $(this),
    header = accordion.find(':header')[0],
    titleHTML = header.outerHTML,
    innerHTML = accordion.html().replace(titleHTML, '');

填充了header变量,但.replace()找不到HTML字符串。它适用于Chrome,FF等,但IE8不想播放。

我在构建innerHTML变量之前尝试删除元素,但在执行路径中引入了更多问题。

任何人都可以对此有所了解吗?


修改

重写可以进行一些按摩。

var accordion = $(this),
    header = accordion.find(':header').first(),
    titleHTML = header.prop('tagName'),
    titleLabel = header.text();

header.remove();

var innerHTML = accordion.html();

基本上,两个主要的变化是让[0]的第一个元素有点片状,确实首先删除元素是可行的方法。

1 个答案:

答案 0 :(得分:0)

试试这个

$(this).find(':header').first().remove();

看起来基本上就是你正在做的事情,找到任何标题元素,获取第一个的本机DOM节点,然后获取outerHTML,并在this中替换它,尝试删除它,这似乎是一种奇怪的方式。