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

如何用JavaScript将嵌套HTML列表转为缩进纯文本?jQuery方案存问题

解决方法:只在控制台输出时添加缩进,别碰DOM元素

兄弟,你这问题根源就是用prepend(" ")直接修改了页面上的pre.code元素呀!这个操作会把制表符实实在在插到DOM里,而你要的只是在console.log里显示缩进,完全没必要动原元素。

给你改个版本,只在输出的时候把制表符和文本拼在一起,原页面元素啥都不会变:

function serializeCode() {
  $.each($("pre.code"), function() {
    if ($(this).parent().parent().hasClass("multiline")) {
      // 先拿原文本,再拼接制表符输出,绝不修改原DOM
      console.log("	" + $(this).text());
    }
  });
}

为啥原代码不行?

$(this).prepend(" ")是DOM修改操作,它会把制表符插入到pre.code的内容开头,页面上的元素自然就被改了。而换成字符串拼接的方式,只是在输出到控制台的那一刻给文本加了缩进,原元素的内容完全保持原样,完美符合你的预期。

要是你的pre.code里有换行之类的格式,这种方式也能完整保留,只是开头多了个制表符缩进,正好是你想要的效果~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:37:09