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

如何将与data-date属性值不匹配的元素类保存到变量中?

解决方案:提取不匹配的类

嘿,我明白你要做的事了——从path的class列表里,找出和按钮data-date值不匹配的那个类,对吧?这其实不难,我们可以通过拆分class字符串、过滤匹配项来实现。

具体实现步骤

  1. 把path的class属性值拆分成数组(因为class是用空格分隔的多个值);
  2. 过滤掉和data-date值匹配的类;
  3. 剩下的就是你要保存的不匹配类。

完整代码示例

替换你代码里注释的部分,最终的JS代码如下:

$("button").on("click", function() {
  var pathClass = $("path").attr("class");
  var curClass = $(this).attr("data-date");

  // 核心逻辑:提取不匹配的类
  if($(this).hasClass(curClass)) { 
    // 1. 将class字符串拆分成数组(兼容多个空格的情况)
    const pathClassList = pathClass.split(/\s+/);
    // 2. 过滤掉和curClass匹配的类,取第一个不匹配的项
    // 担心大小写不一致的话,可以加.toLowerCase()统一比较
    const unmatchedClass = pathClassList.filter(cls => cls.toLowerCase() !== curClass.toLowerCase())[0];
    
    // 现在unmatchedClass就是你要的类啦,你的例子里会返回"bye"
    console.log(unmatchedClass);
  }
});

额外说明

  • 如果path有多个不匹配的类(比如class是hello bye test,data-date是hello),filter会返回所有不匹配的类组成的数组,你可以根据需求选择取第一个([0])或者保存整个数组;
  • 使用split(/\s+/)而非split(' '),是为了处理class之间有多个空格的情况,逻辑更健壮;
  • 若你能确定class和data-date的大小写完全一致,可以去掉toLowerCase()这部分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:09:43