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

jQuery中if/else条件语句不生效问题求助

问题原因

你的代码存在3个问题导致else分支无法触发:

  • 选择器语法错误:find('card-decorator-stroke') 漏掉了类选择器必须的.前缀,正确写法为find('.card-decorator-stroke')
  • 条件判断逻辑错误:jQuery选择器无论是否匹配到元素,返回的都是jQuery对象,直接做布尔判断永远为true,需要搭配.length属性判断是否存在匹配元素
  • 逻辑匹配对象错误:根据你的描述,card-decorator-stroke和card-decorator-stroke-none是直接加在.card-decorator-brand-curve元素自身的类,不需要用find查找子元素,直接判断当前元素的类即可;且else分支的全局选择器会匹配所有符合条件的元素,没有限定当前遍历项

修复后代码

$('.card-decorator-brand-curve').each(function() {
    const $cur = $(this);
    // 判断当前元素是否带card-decorator-stroke类
    if ($cur.hasClass('card-decorator-stroke')) {
        $cur.removeClass('card-decorator-stroke');
        $cur.addClass('brand-curve-stroke');
        console.log("test me");
   } 
   // 判断当前元素是否带card-decorator-stroke-none类
   else if ($cur.hasClass('card-decorator-stroke-none')) {
       $cur.removeClass('brand-curve-stroke');
       console.log("test me 2");
   }
 });

若card-decorator-stroke确实是当前元素的子元素类,可将判断条件修改为if ($cur.find('.card-decorator-stroke').length)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 03:15:05