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

Posted

技术标签:

【中文标题】用于匹配链接忽略查询中的 href 的 Jquery 选择器【英文标题】:Jquery selector to match href in a link ignore query 【发布时间】:2019-08-23 03:59:01 【问题描述】:

我的网站上有一些包含 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】:

您可以使用filter() 并与&lt;a&gt;pathname 属性进行比较,其中没有查询字符串。

&lt;a&gt; 元素有许多类似于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>

【讨论】:

OK...我刚刚添加了一个长度检查和日志,您可以使用它。从你的中删除 css(),它只是作为演示的一部分来展示它捕获的内容 谢谢! 哦,这对我来说更有意义,现在让我试试看。

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

忽略聚合中查询的“匹配”子句

mongodb - 如果数组中的某个元素与查询匹配,则忽略文档

如何使dango url忽略urls.py中的查询字符串

如何使用 MySQL 连接语句选择与链接表中的多个值匹配的记录?

EXISTS 不适用于 WITH 子句中的子查询

如何用 JavaScript 给当前网页中的所有链接后面添加随机数