我有一个表示元素的超文本标记语言字符串:'<li>text</li>'。我想把它附加到DOM中的一个元素(在我的例子中是一个ul )。我如何使用Prototype或DOM方法来实现这一点?
(我知道在jQuery中可以很容易做到这一点,但不幸的是,我们没有使用jQuery。)
发布于 2017-10-29 06:03:46
使用insertAdjacentHTML()。它适用于所有当前的浏览器,甚至与IE11。
var mylist = document.getElementById('mylist');
mylist.insertAdjacentHTML('beforeend', '<li>third</li>');<ul id="mylist">
<li>first</li>
<li>second</li>
</ul>
发布于 2017-02-25 05:48:42
不需要任何调整,你得到了一个原生的API:
const toNodes = html =>
new DOMParser().parseFromString(html, 'text/html').body.childNodes[0]发布于 2015-12-17 19:42:42
对于其他答案中提到的某些html片段,如<td>test</td>、div.innerHTML、DOMParser.parseFromString和range.createContextualFragment (没有正确的上下文),不会创建<td>元素。
jQuery.parseHTML()正确地处理它们(我提取了可以在非jquery代码库中使用的jQuery 2's parseHTML function into an independent function )。
如果您只支持边缘13+,则只使用HTML5模板标记会更简单:
function parseHTML(html) {
var t = document.createElement('template');
t.innerHTML = html;
return t.content;
}
var documentFragment = parseHTML('<td>Test</td>');https://stackoverflow.com/questions/494143
复制相似问题