我有一个HTML字符串,代表一个元素:'<li>text</li>'
.我想将其附加到DOM中的一个元素(在我的例子中是ul
).如何使用Prototype或DOM方法来实现这一点?
(我知道我可以在jQuery中轻松做到这一点,但不幸的是,我们没有使用jQuery.)
我有一个HTML字符串,代表一个元素:'<li>text</li>'
.我想将其附加到DOM中的一个元素(在我的例子中是ul
).如何使用Prototype或DOM方法来实现这一点?
(我知道我可以在jQuery中轻松做到这一点,但不幸的是,我们没有使用jQuery.)
Note:大多数当前浏览器支持HTML<template>
元素,这为从字符串创建元素提供了更可靠的方法.见Mark Amery's answer below for details.
For older browsers, and node/jsdom:(在 compose 本文时还不支持<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模板不同,此won't适用于某些在法律上不能成为<div>
的子级的元素,例如<td>
.
如果您已经在使用库,我建议您坚持使用库认可的方法,从HTML字符串创建元素:
update()
method中内置了这一功能.jQuery(html)
和jQuery.parseHTML
个方法中实现了它.