javascript - 元素内部的自定义 div 不保留属性
问题描述
所以我有这个代码:
const div = (tag) => {
const ptag = document.querySelector(tag);
const shadow = ptag.attachShadow({
mode: 'closed'
});
const div = document.createElement('div');
div.textContent = ptag.textContent;
shadow.appendChild(div);
}
div('foo-bar')
<foo-bar>
<h1>Hi</h1>
</foo-bar>
修复赞赏。提前感谢合作伙伴。将不胜感激custags.js的制作。
解决方案
关于div.textContent
您正在使用,这只会获取内容字符串而不是整个 HTML。
引用 MDN
textContent
Node 接口的属性表示节点及其后代的文本内容。
Element.innerHTML
如其名称所示,返回 HTML。有时人们用于innerHTML
在元素内检索或写入文本,但textContent
由于其值不被解析为 HTML,因此具有更好的性能。此外,使用 textContent 可以防止 XSS 攻击。
更多关于Node.textContent
.
在这种情况下最好使用innerHTML
,因为您想h1
从foo-bar
这里保存。
const div = (tag) => {
const ptag = document.querySelector(tag);
const shadow = ptag.attachShadow({
mode: 'closed'
});
const div = document.createElement('div');
div.innerHTML = ptag.innerHTML;
shadow.appendChild(div);
}
div('foo-bar')
<foo-bar>
<h1>Hi</h1>
</foo-bar>
推荐阅读
- windows - 使用 .bat 文件回答多个控制台提示
- javascript - 设置后在函数中使用新状态
- latex - Sphinx LaTeX 目录 - 避免包含的 rst 文件的目录树嵌套
- java - 内存/堆转储中有大量重复字符串
- regex - 如何在一行中修改三个命令(正则表达式)以在 sed(而不是 fnr.exe)中使用
- python - Pandas 多索引、分层索引
- php - 有没有办法显示数组中的哪个元素验证失败?
- jquery - 中心元素 css html
- reactjs - 未调用 mapStateToProps 方法
- reactjs - 将 useRef 与 Array 反应以实现动态