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

时间:2019-04-01 22:20:53

标签: jquery jquery-selectors

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

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的第一部分?

1 个答案:

答案 0 :(得分:3)

您可以使用filter()并与其中没有查询字符串的pathname的{​​{1}}属性进行比较。

<a>元素具有许多与<a>类似的属性,例如window.locationhostsearch等。

protocol在域主机之后开始,在任何pathname#之前结束

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

console.log("Matches:", $hasString.length)