You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将DOM元素数组转为字符串时得到对象标识而非HTML内容的问题

问题分析与解决

你得到的array2是DOM元素对象数组,不是字符串数组。直接调用join("")时,JavaScript会把每个DOM元素转为默认的字符串表示形式,也就是[object HTMLXXXElement],这就是你没考虑到的核心点。

两种可行的解决方式

方式1:用outerHTML获取完整元素HTML

outerHTML属性会返回当前DOM元素本身及其所有子内容的完整HTML代码,完全匹配你的预期需求。修改代码如下:

let contentString = array2.map(el => el.outerHTML).join("");

方式2:用innerHTML(仅适用于获取元素内部内容)

如果只需要元素内部的HTML代码(不包含元素自身的标签),可以用innerHTML,但你的预期结果需要保留<p>和<ul>标签,所以这个方式不适用,仅作补充参考:

// 示例:仅获取元素内部内容,不符合你的需求
let innerContent = array2.map(el => el.innerHTML).join("");

额外小提示

你的选择器body:not(first-child) > *存在语法问题,若要排除body的第一个子元素,正确写法应为body > :not(:first-child),不过这和当前字符串转换的问题无关,只是顺带提醒。

内容的提问来源于stack exchange,提问作者Smeagol2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 15:31:42