[英]I want to append the query string on a URL to all anchor links on the page
[英]Getting all links on a page that match a url string
我目前正在使用此代码(以及Mootools)来构建#subnav
div中包含特定网址字符串的所有锚点的数组:
$('subnav').getElements('a[href*=/'+href+']')
问题是,如果我正在寻找work.aspx?subsection=24&project=1
,它将匹配具有work.aspx?subsection=24&project=15
URL的work.aspx?subsection=24&project=15
。
如何防止这种情况发生?
我唯一想到的解决方案是使用正则表达式。 像这样的东西:
$('subnav').getElements('a').filter(function (element, index) {
return /work\.aspx\?subsection=24&project=1(?:$|&)/.test(element.href);
});
该正则表达式将匹配project = 1,然后是&
或字符串的末尾。 它使用MooTool(或本机浏览器)的Array.filter
删除所有不匹配项。 这不是最优雅的解决方案,尤其是如果您动态地使用它,因为那之后您必须编写一些代码来创建新的正则表达式。
要回答我自己的问题。 就像将*
更改为$
一样简单。
$('subnav').getElements('a[href$=/'+href+']')
听起来应该通过301或302重定向更优雅地处理...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.