我目前正在使用此代码(与 Mootools 一起)来构建#subnav
div 中包含特定 url 字符串的所有锚点的数组:
$('subnav').getElements('a[href*=/'+href+']')
问题是,如果我正在寻找work.aspx?subsection=24&project=1
将与 URL 匹配的锚点work.aspx?subsection=24&project=15
。
我怎样才能防止这种情况发生?
我目前正在使用此代码(与 Mootools 一起)来构建#subnav
div 中包含特定 url 字符串的所有锚点的数组:
$('subnav').getElements('a[href*=/'+href+']')
问题是,如果我正在寻找work.aspx?subsection=24&project=1
将与 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 ,然后匹配 a&
或字符串的结尾。它使用 MooTool(或本机浏览器)Array.filter
来删除所有不匹配项。这不是最优雅的解决方案,特别是如果您动态使用它,那么您必须编写一些代码来创建新的正则表达式。
打算回答我自己的问题。*
就像将 更改为一样简单$
。
$('subnav').getElements('a[href$=/'+href+']')
听起来应该通过 301 或 302 重定向更优雅地处理......