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

CSS contains选择器替代方案 实现车型列表精准匹配筛选

问题原因

你当前使用的CSS属性包含选择器*=仅判断属性值是否包含搜索字符串,而你第三个列表项的data-custom-field-model值为 E-Tron S| E-Tron GT,天然包含E-Tron字符串,因此不会被判定为不符合条件的项,导致搜索E-Tron时也会展示该项。

解决方案

你的data-custom-field-model字段用|作为多车型的分隔符,因此可以先拆分字段值、去除前后空格后做精准匹配,修改后的代码如下:

let searchText = "E-Tron";
// 先选中所有待筛选的列表项
const containerItems = contentContainer.querySelectorAll('li[data-custom-field-filter-name^="Typ"]');

containerItems.forEach(function (el) {
    // 拿到车型字段值,按|拆分,去除每个项前后的空白字符
    const modelList = el.dataset.customFieldModel.split('|').map(item => item.trim());
    // 精准判断是否匹配搜索词
    if (!modelList.includes(searchText)) {
        el.classList.add('d-none');
    } else {
        // 匹配的话移除隐藏类,兼容多次搜索的场景
        el.classList.remove('d-none');
    }
});
效果验证
  • 搜索E-Tron时,仅第二个列表项的拆分后数组包含E-Tron,仅展示该项
  • 搜索E-Tron S或E-Tron GT时,仅第三个列表项的拆分后数组包含对应值,仅展示该项
  • 搜索其他不存在的车型时,所有项都会隐藏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:36:04