javascript - 从 DOMParser 获取所有 HTML 内容,不包括外部 body 标记
问题描述
我DOMParser
在下面的代码中使用。
let doc = new DOMParser().parseFromString('<b>sample text</b> <i>sample text</i>', 'text/html');
document.querySelector('.js').append(doc.body);
<span><b>sample text</b> <i>sample text</i></span>
<span><b>sample text</b> <i>sample text</i></span>
<span class='js'></span>
当我运行它时,它会正确提供 HTML 内容,但问题是结果中也包含外部body
标记,这使得内容具有block
display。实际上,我需要保留inline
显示,如前两节所示span
。
我认为这是因为doc.body
声明,所以我尝试将其更改为doc.body.firstChild
(仅返回b
元素)和doc.body.children
(返回[Object HTMLCollection]
),但它们都不起作用。
如何解决?
注意: <span><b>sample text</b> <i>sample text</i></span>
是我网页上的动态内容。
解决方案
尝试做
document.querySelector('.js').append(...doc.body.children);
let doc = new DOMParser().parseFromString('<b>sample text</b> <i>sample text</i>', 'text/html');
document.querySelector('.js').append(...doc.body.children);
<span><b>sample text</b> <i>sample text</i></span>
<span><b>sample text</b> <i>sample text</i></span>
<span class='js'></span>
推荐阅读
- java - 使用 Spring JDBCTemplate 更新 ResultSet
- python - 使用特定标准从 Pandas DataFrame 中删除行?
- node.js - 如何仅使用 tensorflow 和 nodejs 制作自定义对象检测模型(cocossd)?
- authorize.net - 沙箱中的 accept.js - E_WC_21:用户身份验证失败
- javascript - tesseract.js 从 axios 流响应中识别
- batch-file - 用于删除特定文件夹中旧文件的批处理脚本
- regex - 我如何将范围与正则表达式匹配,并使用有限的正则表达式规则
- javascript - 使用 null 时我的游戏对象不显示
- swift - 致命错误:索引超出范围 UITableView indexPath.row
- java - 滚动数字以启动循环后,Java 不循环应用程序