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

如何在jQuery中仅为当前点击元素添加类而不作用于其他同级元素

实现方案

要实现任意时刻只有一个指定div处于激活展示状态,核心逻辑是点击时先清空所有同级元素的激活状态,再单独为当前匹配的目标元素添加激活类,避免多个元素同时生效的问题。


原有代码问题修正

你现有代码存在两处明显问题:

  • hasClass(".show")语法错误,hasClass方法参数直接传入类名即可,不需要加.前缀
  • 未提前清空其他元素的激活类,会导致多个元素同时带有is-visible类,状态不同步

完整可运行代码

HTML代码

<div class="c-card">
  <div class="child">Child 1</div>
  <div class="child">Child 2</div>
  <div class="child">Child 3</div>
</div>

jQuery代码

以下代码默认你已经在点击事件上下文里正确获取到cid和cvid两个匹配参数:

$(".js-sidebar-video-link-single-in-conversation").on("click", function(){
  // 第一步:重置所有child元素的状态,清空激活类、统一隐藏
  $(".child").removeClass("is-visible").hide();

  // 第二步:筛选出符合video-id和video-number匹配规则的目标元素
  const targetChild = $(".child").filter(function() {
    const videoID = $(this).data("video-id");
    const cvid2 = $(this).data("video-number");
    return videoID === cid && cvid === cvid2;
  });

  // 第三步:仅为匹配到的目标元素添加激活类、设置显示
  targetChild.addClass("is-visible").show();

  // 兼容原有show类判断逻辑
  if (targetChild.hasClass("show")) {
    $(".in-conversation .is-visible").siblings().hide();
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:54:02