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

如何通过匹配URL部分内容隐藏不包含该内容的div?

解决方法:隐藏不匹配当前搜索关键词的内容块

核心思路

  1. 提取当前URL路径的最后一段(也就是你的搜索关键词,比如从https://urll.com/lib/search/textquery中拿到textquery)
  2. 遍历所有包含目标链接的内容div,检查每个div内的链接是否包含该关键词
  3. 隐藏所有不匹配关键词的div

可用的jQuery脚本

$(function() {
  // 提取当前URL的搜索关键词
  const searchKeyword = window.location.pathname.split('/').pop();
  
  // 替换成实际包裹链接的div选择器,比如类名/ID
  // 示例:如果div类是"result-card",就用$('.result-card')
  $('.result-card').each(function() {
    // 获取当前div内目标链接的alt属性(也可以检查href属性)
    const linkAlt = $(this).find('a.text-secondary').attr('alt');
    
    // 不包含关键词则隐藏当前div
    if (!linkAlt || !linkAlt.includes(searchKeyword)) {
      $(this).hide();
    }
  });
});

你之前脚本的问题

  • 第一段脚本:
    • 选择器exampledivname缺少.(类选择器)或#(ID选择器),jQuery无法定位元素
    • :contains()只能匹配静态字符串,不能直接嵌入JS表达式执行
    • hide()没有指定要隐藏的元素,必须明确指向当前遍历的div
  • 第二段脚本:
    • $('a').attr('alt')仅获取页面第一个a标签的alt属性,不会遍历所有目标链接
    • 只做了匹配判断,没有实现隐藏逻辑

补充说明

如果不确定包裹链接的div选择器,可以通过链接反向定位父容器:

// 找到所有目标a标签,再找它们最近的div容器
$('a.text-secondary').closest('div').each(function() {
  const linkAlt = $(this).find('a.text-secondary').attr('alt');
  if (!linkAlt || !linkAlt.includes(searchKeyword)) {
    $(this).hide();
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 04:20:22