javascript替代DOM元素

时间:2011-07-03 17:14:25

标签: javascript html dom

我想做点什么:

var htmlcode = '<div>testing</div>';
document.getElementById('initDiv').html = htmlcode;

有点像使用innerHTML但替换元素本身。

是的,有人能帮帮我吗? 感谢

3 个答案:

答案 0 :(得分:4)

不,您的问题没有原生的跨浏览器解决方案。你能做的最好的事情就是将一些能够以更多跨浏览器方式工作的东西拼凑在一起。

这是一个解决方案:

function outerHTML( el, html ) {
    if ( 'outerHTML' in el ) {   // for most browsers
        el.outerHTML = html;
    } else {                     // for Firefox
        var temp = document.createElement('div');
        temp.innerHTML = html;
        while (temp.firstChild) {
            el.parentNode.insertBefore( temp.firstChild, el );
        }
        el.parentNode.removeChild(el);
    }
};

像这样使用:

var initDiv = document.getElementById('initDiv');

outerHTML( initDiv, '<div>testing</div>' );

示例: http://jsfiddle.net/6VUNU/1/

答案 1 :(得分:1)

您可以使用document.getElementById(...).outerHTML值,但据我记得,它并不适用于所有浏览器。

答案 2 :(得分:1)

您始终可以找到initDiv的父级,createElement('div'),使用htmlcode填充它,然后在initDiv上使用removeElement。