考虑下面的片段:
var element = document.createElement(null);
console.log(element);
document.body.appendChild(element);
console.log(element);
element.outerHTML = "<div id='hi'> hello there </div>";
console.log(element);
element = document.getElementById("hi");
console.log(element);
您会注意到,在使用之后,引用是对原始元素的引用outerHTML
。如文档中所述:
此外,虽然元素将在文档中被替换,但设置了 outerHTML 属性的变量仍将保留对原始元素的引用。
因此,最简单的方法是document.getElementById()
在设置后实际使用id
来获取创建的新元素,或者document.createElement()
像这样使用来创建一个不太通用的对象并操作它innerHTML()
:
var element = document.createElement('div');
console.log(element);
element.innerHTML = ' hello there ';
document.body.appendChild(element);
console.log(element);
如您所见,在上面的代码段中,element
更改其内容后是相同的。
更新:
使用一些创造性的技巧,您可以将您想要使用的东西添加innerHTML
到您创建的通用元素中,然后抓取它firstChild
并替换element
,最后将其添加到您的文档中并保持选中状态。下面的示例向您展示了如何执行此操作:
var element = document.createElement(null);
element.innerHTML = '<div> hello there </div>';
element = element.firstChild;
document.body.appendChild(element);
console.log(element);