javascript替换DOM元素

javascript替换DOM元素,javascript,html,dom,Javascript,Html,Dom,我想做一些类似的事情: var htmlcode = '<div>testing</div>'; document.getElementById('initDiv').html = htmlcode; var htmlcode='testing'; document.getElementById('initDiv').html=htmlcode; 有点像使用innerHTML,但替换元素本身 有人能帮我吗? 谢谢有一个document.getElementById(…

我想做一些类似的事情:

var htmlcode = '<div>testing</div>';
document.getElementById('initDiv').html = htmlcode;
var htmlcode='testing';
document.getElementById('initDiv').html=htmlcode;
有点像使用innerHTML,但替换元素本身

有人能帮我吗?
谢谢

有一个
document.getElementById(…).outerHTML可以使用,但据我所知,它不能在所有浏览器中使用。

有一个
document.getElementById(…).outerHTML
值可以使用,但据我记忆所及,它并非在所有浏览器中都可用。

您总是可以找到initDiv的父级createElement('div'),用htmlcode填充它,然后在initDiv上删除元素。

您总是可以找到initDiv的父级createElement('div'),用htmlcode填充它,然后在initDiv上删除htmlelement。

否,您的问题没有本机跨浏览器解决方案。您所能做的最好的事情就是以更跨浏览器的方式拼凑一些东西

这里有一个解决方案:

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>' );
var initDiv=document.getElementById('initDiv');
outerHTML(initDiv,“测试”);

示例:

不,您的问题没有本机跨浏览器解决方案。您所能做的最好的事情就是以更跨浏览器的方式拼凑一些东西

这里有一个解决方案:

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>' );
var initDiv=document.getElementById('initDiv');
outerHTML(initDiv,“测试”);

示例:

替换什么元素?你的html标记是什么?我的问题很简单。但是我的html标记是blabla,请不要告诉我我可以使用innerHTML,因为我知道我可以,这不是我的问题。谢谢您是否需要在
htmlcode
变量中创建元素?或者您愿意使用
document.createElement()
?我更愿意这样做:var htmlcode='testing';createElement(htmlcode);父项移除元素(原件);-像这样的替换什么元素?你的html标记是什么?我的问题很简单。但是我的html标记是blabla,请不要告诉我我可以使用innerHTML,因为我知道我可以,这不是我的问题。谢谢您是否需要在
htmlcode
变量中创建元素?或者您愿意使用
document.createElement()
?我更愿意这样做:var htmlcode='testing';createElement(htmlcode);父项移除元素(原件);-类似这样的想法是个好主意,但我认为会有一些东西关注于此……一旦节点消失,它就消失了。如果它只是一个div,您只需更改innerHTML,它将作为一个新div显示给用户。如果你对游戏或其他东西的DOM操作越来越复杂,你可能想看看jQuery,因为它使所有这些操作变得非常简单,而且跨浏览器友好。我很感激,但这是一个非常具体的学术项目,我不能使用任何外部库@patrick dw的答案非常适合我的需要…这是一个好主意,但我认为会有一些东西关注于此…一旦节点消失,它就消失了。如果它只是一个div,您只需更改innerHTML,它将作为一个新div显示给用户。如果你对游戏或其他东西的DOM操作越来越复杂,你可能想看看jQuery,因为它使所有这些操作变得非常简单,而且跨浏览器友好。我很感激,但这是一个非常具体的学术项目,我不能使用任何外部库@patrick dw的答案非常适合我的需要。。。