HTML dom 字符串创建元素,使用内置的DOM方法或原型从HTML字符串创建新的DOM元素...

305c533a3ebfe75fea493e83ce711157.png

拉风的咖菲猫

HTML 5引入了元素,可用于此目的(如WhatWG规范和MDN文档).A 是一个HTML元素,它允许任何其他元素类型作为子元素。这个template有一个.content属性,您可以使用JavaScript访问该属性,该属性指向DocumentFragment模板的内容。这意味着您可以通过设置innerHTML一种元素,然后深入到template氏.content财产。例子:/**

 * @param {String} HTML representing a single element

 * @return {Element}

 */function htmlToElement(html) {

    var template = document.createElement('template');

    html = html.trim(); // Never return a text node of whitespace as the result

    template.innerHTML = html;

    return template.content.firstChild;}var td = htmlToElement('

foo'),

    div = htmlToElement('

nested  stuff
');/**

 * @param {String} HTML representing any number of sibling elements

 * @return {NodeList} 

 */function htmlToElements(html) {

    var template = document.createElement('template');

    template.innerHTML = html;

    return template.content.childNodes;}var rows = htmlToElements('

foobar');请注意,类似的方法使用不同的容器元素,例如div不太好用。HTML对允许哪些元素类型存在于哪些其他元素类型中有限制;例如,您不能将td作为一个直接的子代div..如果尝试设置innerHTML一种div来控制它们。自S对它们的内容没有这样的限制,这个缺点在使用模板时不适用。然而,template在一些旧浏览器中不支持。截至2008年1月,我能用.。估计数全球90%的用户使用支持templates..特别是,InternetExplorer的任何版本都不支持它们;Microsoft没有实现template支持到边缘的发布。如果您很幸运地编写了只针对现代浏览器上的用户的代码,那么现在就开始使用它们吧。否则,您可能需要等待一段时间才能赶上用户。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值