用于匹配链接忽略查询中的 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()
并与<a>
的pathname
属性进行比较,其中没有查询字符串。
<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>
【讨论】:
OK...我刚刚添加了一个长度检查和日志,您可以使用它。从你的中删除css()
,它只是作为演示的一部分来展示它捕获的内容
谢谢!
哦,这对我来说更有意义,现在让我试试看。以上是关于用于匹配链接忽略查询中的 href 的 Jquery 选择器的主要内容,如果未能解决你的问题,请参考以下文章
mongodb - 如果数组中的某个元素与查询匹配,则忽略文档