<template> 标签
<template> 标签存储可以克隆并插入到 HTML 文档中的 HTML 代码片段。
<template> 元素在 DOM 中表示为 HTMLTemplateElement,它具有 DocumentFragment 类型的 .content 属性,以便提供对模板内容的访问。
这允许通过设置 <template> 元素的 innerHTML 将 HTML 字符串转换为 DOM 元素,然后进入 .content 属性。
HTML5 引入了 <template> 元素,可用于从 HTML 字符串创建 DOM 元素。
function htmlToElem(html) {
let temp = document.createElement('template');
html = html.trim(); //不返回空文本节点
temp.innerHTML = html;
return temp.content.firstChild;
}
let td = htmlToElem('<td>foo</td>'),
div = htmlToElem('<div><span>nested</span> <span>stuff</span></div>');
alert(td);
alert(div);
/*
@param {String} HTML representing any number of sibling elements
@return {NodeList}
*/
function htmlToElems(html) {
let temp = document.createElement('template');
temp.innerHTML = html;
return temp.content.childNodes;
}
let rows = htmlToElems('<tr><td>foo</td></tr><tr><td>bar</td></tr>');
alert(rows);
所有主要浏览器都支持 <template> 元素。
请注意,HTML 对可以在元素类型中使用的元素类型有限制;例如,<td> 不能作为 <div> 元素的直接子元素。
这会导致元素消失。
<template> 元素对其内容没有这样的限制。
日期:2020-06-02 22:16:14 来源:oir作者:oir
