const createDomTree = content => {
const template = document.createElement('template');
template.innerHTML = content;
console.log('template.content: ', template.content);
console.log('template.children: ', template.content.children);
const treeNodes = template.content.children || [];
const treeNodesArr = [].slice.call(treeNodes);
return treeNodesArr;
};
第一次进来
html字符串: '<p>1</p><p>2</p>'
第二次进来
做了一些处理,在外面包了一层 p,第二次进来理论上content
应该是解析出一个 p
html字符串: '<p data-scroll-id="1653587266164" style="margin: 0;"><p>1</p><p>2</p></p>'
模拟测试
使用 div 包裹
html字符串: '<div><p data-scroll-id="1653587266164" style="margin: 0;"><p>1</p><p>2</p></p></div>'
使用 p 包裹
html字符串: '<p><p data-scroll-id="1653587266164" style="margin: 0;"><p>1</p><p>2</p></p></p>'
就算是去掉各种特殊属性也是一样的
搞不懂这是什么情况,求大佬解答~~
因为:
块级中可以包括一部分块级元素,并可以包含内联元素。内联元素中不包含块级元素,只可以包含内联元素。
块级与块级并列,内联与内联元素相并列。
所以:
P 标签虽然是块级元素,但不可包含其他块级元素。
像 P标签 . <h1 ~6> dt标签 这几个块元素只可包含内联元素,
p标签无法嵌套 p div ul 标签