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

如何在使用jQuery移动元素后保留HTML中的换行符?

解决方案

问题出在使用insertBefore移动DOM元素时,元素之间的空白换行(DOM中的文本节点)没有被保留,导致最终获取的HTML结构里相邻元素挤在一起。

只需在移动元素后,手动给被移动的元素添加一个换行文本节点即可:

$(document).on('click', '.ati', function(){
    $('.aact').removeClass('aact');
    $(this).addClass('aact');
});

$('button').on('click', function(){
    let tg = $('.aact');
    if(tg.length == 0){alert('TITLE IS NOT SELECTED');return;}
    let tgg = tg.prev();
    tg.insertBefore(tgg);
    // 给移动后的元素添加换行文本节点
    tg.after('\n');
    let a = $('#awrap').html();
    console.log(a);
});

修改说明

  • 在执行insertBefore移动元素后,通过tg.after('\n')在被移动的激活状态.ati元素后面插入一个换行文本节点,确保它和下一个元素之间存在换行分隔。

执行修改后的代码,点击按钮后输出的HTML结构将符合期望:

<div class="ati">lorem</div>
<div class="ati aact">dolor</div>
<div class="ati">ipsum</div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 10:40:52