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

如何不使用jQuery实现追加元素并获取最后一个子元素

原生JavaScript实现等效功能

嘿,我来帮你把这段jQuery代码转换成原生JS,确保功能完全一致!

先拆解下原jQuery代码的核心作用:

Sk.domOutput = function(html) { return jQuery('body').append(html).children().last(); };

这个函数接收一段HTML字符串,把它追加到页面的<body>标签里,然后返回刚添加的最后一个元素。

方案一:简洁版(推荐)

用原生的insertAdjacentHTML方法直接插入HTML,然后取body的最后一个子元素,代码更简洁,和原jQuery逻辑完全对齐:

Sk.domOutput = function(html) {
  // 将HTML字符串插入到body的末尾
  document.body.insertAdjacentHTML('beforeend', html);
  // 返回body的最后一个子元素
  return document.body.lastElementChild;
};

方案二:更严谨的解析方式

如果需要更稳妥地处理复杂HTML结构(比如包含多个顶级元素的情况),可以先创建临时容器解析HTML,再把元素移到body里:

Sk.domOutput = function(html) {
  const tempDiv = document.createElement('div');
  // 用临时容器解析HTML字符串
  tempDiv.innerHTML = html;
  
  // 把临时容器里的所有元素逐个追加到body
  while (tempDiv.firstChild) {
    document.body.appendChild(tempDiv.firstChild);
  }
  
  // 返回body的最后一个子元素
  return document.body.lastElementChild;
};

为什么这两种方式都能替代原jQuery代码?

原jQuery的append(html)本质上就是把HTML字符串解析成DOM元素,再追加到目标节点;.children().last()就是取目标节点的最后一个子元素。上面的原生实现完全复刻了这个逻辑,而且不需要依赖jQuery库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:42:36