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

如何从选择器结果提取特定前缀类并隐藏对应扩展类元素

解决方案

你的代码失效的核心问题是正则表达式没匹配到类名里的下划线——你要匹配的类名是some_class_1这种格式,但用的/some_class\d+/只会匹配some_class后跟数字的情况,漏掉了中间的_,导致根本提取不到目标类名。

修正后的实现步骤如下:

  1. 修正正则,准确匹配带下划线的目标类名
  2. 过滤无效的提取结果,生成带extra后缀的选择器
  3. 批量隐藏对应元素

完整代码:

// 提取所有带some_class_前缀的类名
let classes = elements.map(function() {
  return (this.className.match(/some_class_\d+/) || []).pop();
}).get();

// 生成目标选择器:给提取到的类名加上extra后缀,转成CSS选择器
let targetSelectors = classes
  .filter(cls => cls) // 排除没匹配到类名的空值
  .map(cls => `.${cls}extra`);

// 批量隐藏所有符合条件的元素
if (targetSelectors.length) {
  $(targetSelectors.join(',')).hide();
}

额外说明:

  • 如果单个元素可能有多个符合前缀的类名,可改用matchAll提取所有匹配项,再统一处理
  • 加filter是为了避免生成.undefinedextra这种无效选择器,影响性能

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 17:25:20