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

如何用原生JavaScript实现仅当元素不存在时向DOM添加HTML?

原生JavaScript实现“仅当元素不存在时添加DOM元素”的逻辑

我需要向DOM中添加一个元素,但仅当该元素不存在时才执行添加操作——这个逻辑会在AJAX调用中使用,可能重复执行,所以必须先做存在性检查。

用jQuery实现这个逻辑很简单,代码如下:

if( jQuery(".new_div").length == 0){
    jQuery("<div class='new_div'></div>").appendTo(".toolbar-sorter");
}

请问如何用原生JavaScript实现相同的检查逻辑?我目前的原生JS代码如下:

const element = document.querySelector(".toolbar-sorter")
element.insertAdjacentHTML("beforeend", "<div class='new_div'></div>");

原生JavaScript实现方案

核心思路和jQuery一致:先检查目标元素是否存在,不存在再执行添加操作。

方法一:通过querySelector直接判断元素是否存在

// 先查找要添加的目标元素
const targetElement = document.querySelector(".new_div");
// 找到父容器
const parentElement = document.querySelector(".toolbar-sorter");

// 只有目标元素不存在,且父容器存在时,才执行添加
if (!targetElement && parentElement) {
    parentElement.insertAdjacentHTML("beforeend", "<div class='new_div'></div>");
}

方法二:通过querySelectorAll的长度判断(和jQuery逻辑完全对应)

const parentElement = document.querySelector(".toolbar-sorter");

// 检查页面中目标元素的数量是否为0
if (document.querySelectorAll(".new_div").length === 0 && parentElement) {
    parentElement.insertAdjacentHTML("beforeend", "<div class='new_div'></div>");
}

更精准的范围检查(仅检查父容器内)

如果只需要确保父容器.toolbar-sorter内部不存在目标元素,而非整个页面,可以把查询范围限定在父元素内,避免页面其他位置的同class元素影响判断:

const parentElement = document.querySelector(".toolbar-sorter");

// 检查父容器内是否存在目标子元素
if (parentElement && !parentElement.querySelector(".new_div")) {
    parentElement.insertAdjacentHTML("beforeend", "<div class='new_div'></div>");
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 21:02:09