javascript – 使用内置DOM方法或Prototype从HTML字符串创建新的DOM元素
作者:互联网
我有一个表示元素的HTML字符串:’< li> text< / li>‘.我想将它附加到DOM中的元素(在我的情况下是ul).如何使用Prototype或DOM方法执行此操作?
(我知道我可以在jQuery中轻松完成这个,但不幸的是我们没有使用jQuery.)
解决方法:
注意:大多数当前浏览器都支持HTML< template>元素,提供了一种更可靠的方法来转换从字符串创建元素.见Mark Amery’s answer below for details.
对于较旧的浏览器和node / jsdom :(在编写时尚未支持< template>元素),请使用以下方法.图书馆用来从HTML字符串中获取DOM元素是一样的(with some extra work for IE用它来实现innerHTML的bug):
function createElementFromHTML(htmlString) {
var div = document.createElement('div');
div.innerHTML = htmlString.trim();
// Change this to div.childNodes to support multiple top-level nodes
return div.firstChild;
}
请注意,与HTML模板不同,这不适用于某些合法无法成为< div>的子元素的元素,例如< td> s.
如果您已经在使用库,我建议您坚持使用库批准的方法从HTML字符串创建元素:
> Prototype在update()
method中内置了此功能.
> jQuery在jQuery(html)
和jQuery.parseHTML
方法中实现了它.
标签:javascript,dom,prototypejs 来源: https://codeday.me/bug/20190911/1803133.html