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

如何在JS/JQuery中先检查特定值子元素是否存在再添加子元素?

问题解决:点击div时判断元素存在性并添加子元素

问题根源

你的代码无法正常工作的核心原因是条件判断逻辑错误:jQuery选择器返回的永远是jQuery对象(即使没有匹配到元素,也是空的jQuery对象),直接和false比较永远不会成立,导致每次点击都会重复添加子div。

修正后的代码

HTML代码

<div id="mii">
</div>

jQuery代码

$(document).ready(function () {
    $("#mii").click(function() {
        // 通过length属性判断是否存在匹配元素
        if($("#mii div span:contains('foo')").length === 0) {
            $("#mii").append("<div class='mii-item'><span>foo</span></div>");
        }
    });
});

CSS代码

#mii {
  background-color: gray;
  width: 100%;
  height: 100%;
  padding: 5px;
}
#mii:hover {
  cursor: pointer;
}

.mii-item {
  background-color: yellow;
  padding: 5px;
}

关键优化说明

还可以利用当前点击元素的上下文简化选择器,提升性能:

$(document).ready(function () {
    $("#mii").click(function() {
        // 基于当前点击元素查找子元素,避免重复全局查找
        if($(this).find("div span:contains('foo')").length === 0) {
            $(this).append("<div class='mii-item'><span>foo</span></div>");
        }
    });
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 12:52:43