can';t使用javascript更改outerHTML

can';t使用javascript更改outerHTML,javascript,replace,outerhtml,Javascript,Replace,Outerhtml,我在页面上有此HTML模板: <div id="bid_wrapper_[[bid_id]]_[[template]]"> <div class="form_item_block" id="bid_wrapper_[[bid_id]]_[[template]]"> <div id="bid_delete_[[bid_id]]_[[template]]"><img src="/images/icons/cross.png">&

我在页面上有此HTML模板:

<div id="bid_wrapper_[[bid_id]]_[[template]]">
    <div class="form_item_block" id="bid_wrapper_[[bid_id]]_[[template]]">
        <div id="bid_delete_[[bid_id]]_[[template]]"><img src="/images/icons/cross.png"></div>
        <div id="bid_label_wrapper_[[bid_id]]_[[template]]">Bid #1</div>
        <div><input type="text" name="bid_summary" id="bid_summary_[[bid_id]]_[[template]]"></div>
        <div><input name="bid_price" id="bid_price_[[bid_id]]_[[template]]"></div>
    </div>
</div>
在这一点上,如果我console.log new_哦,这正是我想要的-所有的东西都被正确地替换了。但是接下来的几行

var new_bid = document.createElement('div')
new_bid.outerHTML = new_oh

当我尝试设置outerHTML时,这里什么也没有发生。如果我设置innerHTML,它确实可以工作,但是我更愿意设置outerHTML。我没有收到任何错误消息,也不明白为什么它没有设置outerHTML。

我假设发生了错误:“Element”上的“outerHTML”属性,因此Element没有父节点

如果要使用新的
div
创建它,则:

var div = document.createElement('div');

div.innerHTML = output;
document.body.appendChild(div);
如果不是:那么试试这个
var bid\u template=document.getElementById('bid\u wrapper\u[[bid\u id]]].[[template]]')。cloneNode(true);
var new_bid_id=2;
var parent=document.querySelector('.parent');
var new_oh=bid_template.outerHTML;
var输出=新的替换(/\[\[template\]\]/g');
输出=输出。替换(/\[\[bid\U id\]\]/g,新的\U bid\U id);
parent.innerHTML=输出;
警报(输出)

出价#1

您需要先将新的\u bid div插入或附加到文档中,然后重置其outerHTML。

只需在使用
之前将其附加到页面上的元素中即可。outerHTML
var div = document.createElement('div');

div.innerHTML = output;
document.body.appendChild(div);