m = TAG_RE.exec(templateString);
// 单纯字符串的情况
if(!m) {
frag.appendChild(document.createTextNode(templateString);
return frag;
}
var tag = m[1],
wrap = map[tag] || map._default,
depth = wrap[0],
prefix = wrap[1],
suffix = wrap[2],
node = document.createElement('div');
// 拼接节点字符串
node.innerHTML = prefix + templateString.trim() + suffix;
// 去除外包裹层,只留字符串转化的节点
while(depth--) node = node.lastChild;
// 只有一个节点的情况
if(node.firstChild === node.lastChild) {
frag.appendChild(node.firstChild);
return frag;
}
// 多个节点,依序添加到 frag
var child;
while(child = node.firstChild) {
frag.appendChild(child);
}
return frag;
}










