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

jQuery中如何在:contains选择器使用变量删除最近的指定类元素

问题根因
  1. jQuery的closest()方法仅会向上遍历当前元素的祖先节点,不会查询兄弟节点、兄弟节点的后代节点。你通过:contains选择器匹配到的是<div hidden class="comment-pk">1</div>元素,该元素的祖先链里不存在flag-container类的元素,自然无法执行删除操作。
  2. :contains是模糊匹配规则,若存在其他包含对应数字的div元素会出现误匹配,不推荐用于精确值匹配。
修复方案

根据你给出的DOM结构,匹配到对应comment_pk的元素后,先定位到它的下一个兄弟节点drilled-hierarchy,再查找该节点下的flag-container元素执行删除即可,参考代码如下:

function remove_div() {
    let comment_pk = 1
    // 精确匹配内容等于comment_pk的.comment-pk类元素
    $(".comment-pk").filter(function() {
        return $(this).text().trim() === String(comment_pk)
    // 找下一个兄弟节点下的.flag-container元素删除
    }).next('.drilled-hierarchy').find('.flag-container').remove()
}

$('#trigger').click(function() {
    remove_div()
})

如果后续DOM结构有调整,可根据实际层级调整遍历规则即可,核心逻辑是不要用closest查找非祖先层级的元素。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:39:06