编程语言
首页 > 编程语言> > javascript – 使用内置DOM方法或Prototype从HTML字符串创建新的DOM元素

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