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

如何使用jQuery获取包含自身标签的子节点完整HTML代码?

获取包含自身标签的DOM子节点完整HTML代码

问题场景

假设目标容器内的HTML结构如下:

<p>First element.</p>
<p>Second element.</p>
<p>Third element.</p>
<table>
    <tr>
        <td>Fourth element</td>
        <td>Still the fourth element</td>
    </tr>
</table>
<p>Fifth element.</p>

期望得到包含每个子节点自身标签的完整HTML数组:

children[0] = '<p>First element.</p>';
children[1] = '<p>Second element.</p>';
children[2] = '<p>Third element.</p>';
children[3] = '<table>\n    <tr>\n        <td>Fourth element</td>\n        <td>Still the fourth element</td>\n    </tr>\n</table>';
children[4] = '<p>Fifth element.</p>';

尝试的错误代码

使用jQuery的html()方法获取内容,仅能得到元素内部文本或子节点,丢失了自身包裹标签:

var children = [];
$('#page_html_source').children().each(function () {
    var line = $(this).html();
    children.push(line);
});

得到的错误结果:

children[0] = 'First element.';
children[1] = 'Second element.';
children[2] = 'Third element.';
children[3] = '\n    <tr>\n        <td>Fourth element</td>\n        <td>Still the fourth element</td>\n    </tr>';
children[4] = 'Fifth element.';

解决方案

使用DOM元素的outerHTML属性,或jQuery的prop('outerHTML')方法,即可获取包含自身标签的完整HTML代码。

修改后的代码:

var children = [];
$('#page_html_source').children().each(function () {
    // 方式1:直接访问DOM元素的outerHTML属性
    var line = this.outerHTML;
    // 方式2:使用jQuery的prop方法
    // var line = $(this).prop('outerHTML');
    children.push(line);
});

原理说明

  • html():仅返回当前元素内部的HTML内容,不包含自身的起始和结束标签。
  • outerHTML:返回包含当前元素自身标签在内的完整HTML代码,完全匹配需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 03:45:07