Jquery URL-在URL中查找字符串

Jquery URL-在URL中查找字符串,jquery,jquery-selectors,Jquery,Jquery Selectors,我有以下html菜单: <ul> <li><a href="About/about-page.html"></a></li> <li><a href="Services/services-page.html"></a></li> </ul> 如何使用jQuery检查当前URL中是否有字符串,例如'About/'(如'About'any case+'/

我有以下html菜单:

<ul>
    <li><a href="About/about-page.html"></a></li>
    <li><a href="Services/services-page.html"></a></li>
</ul>
如何使用jQuery检查当前URL中是否有字符串,例如'About/'(如'About'any case+'/')

其中“About/”可以是任何单词

基本上运行我的菜单,检查是否有与URL部分相同的字符串。 例如:

  • www.website.com/about/=true
  • www.website.com/about/something.html=true
  • www.website.com/about-something.html=false
  • www.website.com/services/about.html=false

非常感谢您的帮助

您不需要jQuery。简单的旧js就可以了:

if( window.location.href.indexOf("About/") < 0 )
// Do something!
if(window.location.href.indexOf(“About/”)<0)
//做点什么!

如果希望不区分大小写,也可以使用
window.location.href.toLowerCase().indexOf

假设变量
currentURL
包含要检查的字符串,并且您不关心它是否包含大写字母“a”:

if(currentURL.toLowerCase().indexOf("about") != -1) {
   //Contains 'about'
}
如果要使用当前页面的URL:

var currentURL = window.location.href;
根据您的评论,我认为您正在尝试将类应用于列表中任何
href
属性中带有“about”一词的
a
元素。在这种情况下:

$("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');

jQuery允许选择具有属性的元素,这些属性的值包含子字符串

$('a[href*="about"]')
如果将“当前”或“活动”类添加到“当前选定”导航菜单项,则可以使用以下选择器:

$('a.active[href*="about"]')
编辑:

阅读您的一些评论,我认为您可能需要查找与当前url匹配的任何导航项。所以

$('a[href="' + window.location.pathname + '"]');

如果您的HREF是完全限定的,则相应地更改
window.location.pathname
。有关window.location属性,请参见。

您所说的“当前URL”是什么意思?项目的URL?当前位置URL?是否要从选择器执行此操作?事件处理程序?代码段中的无效元素是否为错误?当前=当前打开的网站URL@Rob考伊:是的,反正没什么关系:)@Pete;我想是的,否则我会帮你修好的:)对不起,我的问题不够清楚。我试图运行我的菜单,如果发现了与菜单中的URL相同的内容,请向其添加类。因为“About/”可以是任何东西。@Pete-我不确定是否完全理解您的意思,但请参阅我的更新答案。其中“About”是示例工作-目前您必须为单词“service”等编写单独的函数。。我们可以试着在一个函数中实现它吗?“this.href”是否适用于每个单词?@Pete-查看我的新更新。这应该是你想要的。谢谢!那就很好了。