Javascript 文档创建完整元素
我正在制作一个小应用程序,它必须使用以下代码将3个元素附加到另一个元素:Javascript 文档创建完整元素,javascript,Javascript,我正在制作一个小应用程序,它必须使用以下代码将3个元素附加到另一个元素: var MyElem1= document.createElement("div"); ParentElem.appendChild(MyElem1); 这很好,但我想知道是否有一种方法可以创建完整的元素,例如: var MyElem1= document.createElement('<div style="some-styling: here;">Some InnerHtml Here</div&g
var MyElem1= document.createElement("div");
ParentElem.appendChild(MyElem1);
这很好,但我想知道是否有一种方法可以创建完整的元素,例如:
var MyElem1= document.createElement('<div style="some-styling: here;">Some InnerHtml Here</div>');
ParentElem.appendChild(MyElem1);
var MyElem1=document.createElement('someinnerHTML Here');
ParentElem.appendChild(MyElem1);
我知道我可以在创建元素后将这些属性添加到元素中,但我希望有一种方法可以像那样内联执行(跨浏览器工作)
我在上看到(是的,我知道我应该停止使用它),
createElement
函数只需要元素类型(div、span、button等)。您可以创建一个虚拟容器,并通过替换其innerHTML
属性,然后获取.firstChild
来创建所有需要的元素
这里有一个可重用的函数
var elementFactory = (function (){
var dummy = document.createElement('div');
return function(outerHtml){
var node;
dummy.innerHTML = outerHtml;
node = dummy.firstChild;
dummy.removeChild(node);
return node;
}
})();
像这样使用它
var MyElem1 = elementFactory('<div style="some-styling: here;">Some InnerHtml Here</div>'),
MyElem2 = elementFactory('<div style="some-other-styling: here;">Some Other InnerHtml Here</div>');
var MyElem1=elementFactory('Some InnerHtml Here'),
MyElem2=elementFactory('someotherinnerHTML Here');
演示在不是真的,您可以将另一个元素的
innerHTML
设置为字符串,但是当您可以使用createElement
时,为什么要这样做呢。只需将属性和属性添加到每个元素。不,没有这样做的方法。@adeneo是的,我知道我可以为每个元素添加属性,但它们有很多,并且占用了很多空间。@Adrao,你试过.outerHTML
?空间,就像代码的大小一样,应该不是问题,你还是要更好地自己构建元素,而不仅仅是插入一个字符串,浏览器解析该字符串并执行同样的操作?@Adrao,的确如此。我更新了答案以纠正这一点(问题是,由于DOM引用是活动的,因此在创建新元素时,如果之前的引用没有添加到DOM中,它们会被覆盖)