我有以下html菜单:
<ul>
<li><a href="About/about-page.html"></a></li>
<li><a href="Services/services-page.html"></a></li>
</ul>
我如何使用jQuery检查当前网址是否包含例如'关于/'的字符串(如“关于'任何情况+'/')?”
'关于/'可以是任何单词。
基本上通过我的菜单运行并检查是否有与URL部分相同的字符串。 例如:
任何帮助非常感谢。
答案 0 :(得分:2)
假设变量currentURL
包含您要检查的字符串,并且您不关心它是否有一个大写的'A':
if(currentURL.toLowerCase().indexOf("about") != -1) {
//Contains 'about'
}
如果您想使用当前页面的网址:
var currentURL = window.location.href;
根据您的评论,我认为您正在尝试将一个类应用于列表中的任何a
元素,并在href
属性中使用“about”一词。在那种情况下:
$("li > a").filter(function() {
if($(this).attr("href").toLowerCase().indexOf("about") != -1) return true;
return false;
}).addClass("newClass");
更新(根据您的评论)
您可以将此包装在一个需要查找关键字的函数中,以及要添加的类的名称,然后在必要时调用它:
function applyClass(keyword, class) {
$("li > a").filter(function() {
if($(this).attr("href").toLowerCase().indexOf(keyword) != -1) return true;
return false;
}).addClass(class);
}
applyClass('service', 'newClass'); //Or for example applyClass('about', 'newClass');
答案 1 :(得分:1)
你不需要jQuery。普通的旧js会很好:
if( window.location.href.indexOf("About/") < 0 )
// Do something!
如果您想要不区分大小写,也可以使用window.location.href.toLowerCase().indexOf
。
答案 2 :(得分:1)
jQuery允许选择具有值包含子字符串
的属性的元素$('a[href*="about"]')
如果您将“当前”或“有效”类添加到“当前选定的”导航菜单项,则可以使用以下选择器:
$('a.active[href*="about"]')
修改强>
阅读您的一些评论,我想您可能需要找到与当前网址匹配的任何导航项。所以......
$('a[href="' + window.location.pathname + '"]');
如果您的href完全合格,请相应地更改window.location.pathname
。有关window.location属性,请参阅http://davidwalsh.name/javascript-window-location。