javascript 不使用 jQuery 添加到 DOM
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/16063806/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Add to DOM without jQuery
提问by user2143356
This should be simple, but it's not.
这应该很简单,但事实并非如此。
document.getElementsByTagName('body')[0].document.createTextNode( document.createElement('<div>some HTML</div>') );
It creates as a text node. How do I do it so I simply add HTML without jQuery?
它创建为文本节点。我该怎么做,所以我只是在没有 jQuery 的情况下添加 HTML?
回答by Elliot Bonneville
Close, but no cigar. You have to create the element manually (via createElement
), and thenappend it, like this:
关闭,但没有雪茄。您必须手动创建元素(通过createElement
),然后附加它,如下所示:
var div = document.createElement("div");
div.innerHTML = "some HTML";
document.getElementsByTagName('body')[0].appendChild(div);
Unfortunately, you can't do this in a one-liner because there's no function to set the innerHTML
property of an element, which means it isn't chainable. With a bit of preparation you can make this possible, though:
不幸的是,您不能在单行中执行此操作,因为没有设置innerHTML
元素属性的函数,这意味着它不可链接。不过,只要稍作准备,您就可以做到这一点:
function setInnerHTML(element, content) {
element.innerHTML = content;
return element;
}
document.getElementsByTagName('body')[0].appendChild(setInnerHTML(document.createElement("div"), "some HTML"));
回答by Andy
document.createElementrather than createTextNode
document.createElement而不是 createTextNode
回答by Stone Shi
There're a lot of methods:
有很多方法:
elem.innerHTML = '' // fast
elem.appendChild()
elem.insertAdjacentElement() //fast
elem.insertAdjacentHTML()
elem.insertAdjacentText()
回答by Thielicious
document.body.innerHTML+=document.createElement('div').outerHTML;