Jquery选择器匹配链接忽略查询中的href

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jquery选择器匹配链接忽略查询中的href相关的知识,希望对你有一定的参考价值。

我的网站上有一些js包含STRING的链接,它看起来像这样:

if($("a[href*='STRING']").length > 0){
    console.log("yes");
}

如果有如下链接,则返回true:

<a href="STRING.html">text</a>

问题是它也返回true,如下所示:

<a href="index.html?search=STRING">text</a>

如何限制jquery选择器只查看href的第一部分?

答案

您可以使用filter()并与pathname<a>属性进行比较,该属性中没有查询字符串。

<a>元素有许多类似于window.location的属性,如hostsearchprotocol等。

pathname在域名主持人之后开始并在任何#?之前结束

var $hasString= $('a').filter(function() {
  console.log(this.pathname)
  return this.pathname.includes("STRING");
}).css('color', 'red');

console.log("Matches:", $hasString.length)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="STRING.html">No search </a><br/><br/>
<a href="index.html?search=STRING">Search</a>

以上是关于Jquery选择器匹配链接忽略查询中的href的主要内容,如果未能解决你的问题,请参考以下文章

jquery 选择器,模糊匹配

jQuery中的选择器

10分钟-jQuery过滤选择器

jQuery之选择器

JQuery学习历程2.JQuery选择器

jQuery学习笔记使用选择器二