使用cheeriojs如何输出选中标签自身(含属性)而非内部内容
你使用的.html()方法仅返回元素内部的子节点内容,因此只会输出foo标签包裹的emphasis部分。要实现保留foo标签本身及所有属性、清空内部内容的需求,可修改代码如下:
const elements = $('foo') for (let i = 0; i < elements.length; i++) { const e = elements[i] // 克隆元素避免修改原DOM,清空内部内容后获取包含自身的完整XML字符串 console.log($(e).clone().empty().prop('outerHTML')) }
代码说明
.clone():克隆当前foo元素,避免修改原始DOM结构影响后续其他逻辑.empty():清空元素所有内部子节点,仅保留标签本身和全部属性.prop('outerHTML'):获取包含元素自身、所有属性的完整XML字符串,配合你初始化时开启的xmlMode: true配置,输出结果完全符合XML格式要求
如果不需要保留原始foo元素的内部内容,也可以省略.clone()直接操作原元素。
内容的提问来源于stack exchange,提问作者punkish
相关产品推荐
相关产品推荐

