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

JQuery条件执行异常:.long-ribbon类被误移除问题排查

问题解决:为指定条件的.sports ribbon添加.long-ribbon类

问题分析

  • 原代码遍历所有.ribbon元素时,使用全局选择器判断是否存在.claimed,没有限定在当前元素所在的容器内,导致跨容器判断错误
  • 满足条件时给.claimed的所有兄弟元素添加类,不符合仅给.sports元素添加的需求
  • else分支会在遍历到文本长度不足的元素时,错误移除已添加的.long-ribbon类

修正后的代码

HTML(无需修改)

<div class="block ribbons">
  <span class="ribbon claimed">CLAIMED</span>
  <span class="ribbon sports">XXXXXXX XXXXXXX</span>
  <span class="ribbon games">XX</span>
</div>

<div class="block ribbons">
  <span class="ribbon basketball">XXXX</span>
  <span class="ribbon soccer">XXXXXXX XXXXXXX</span>
</div>

jQuery代码

jQuery(document).ready(function ($) {
  // 遍历每个包含.claimed的ribbons容器
  $(".ribbons:has(.claimed)").each(function () {
    const $sportsRibbon = $(this).find(".ribbon.sports");
    // 检查sports ribbon的文本长度是否≥10
    if ($sportsRibbon.text().length >= 10) {
      $sportsRibbon.addClass("long-ribbon");
    }
  });
});

代码说明

  • 直接定位包含.claimed的.ribbons容器,避免无效遍历
  • 只在目标容器内查找.ribbon.sports元素,精准定位需要修改的对象
  • 仅当该sports元素文本长度≥10时添加类,没有多余的移除操作,避免误删已添加的类

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:05:24