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
的属性,如host
,search
,protocol
等。
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的主要内容,如果未能解决你的问题,请参考以下文章