jQuery - 基于url添加类而不使用url

时间:2015-09-04 06:43:33

标签: jquery class url

[再次更新代码] 我有以下代码:

var header_url = window.location.href;
if(/index/.test(header_url)||/home/.test(header_url)){
    $('#home').addClass('select');
} else if(/about/.test(header_url)) {
    $('#about').addClass('select');
} else if(/contact/.test(header_url)) {
    $('#contact').addClass('select');
}

当我点击它们时代码是可行的:

http://example.com/index.html
http://example.com/about.html
http://example.com/contact.html

但是如果我想添加另一个页面,请将其设置为不带网址的默认主页面,如下所示:

http://example.com

我尝试添加代码但不起作用:

else if(/.test(header_url)) {
        $('#default').addClass('select');
    }     

有人可以帮忙吗? THX!

2 个答案:

答案 0 :(得分:1)

你在开关案例中使用了默认值,如

switch (window.location.pathname) {
case '/index':
$('#home').addClass('select');
break;
case '/about':
$('#about').addClass('select');
break;
case '/contact':
$('#contact').addClass('select');
break;
default:
 $('#default').addClass('select');
break;
}   

试试这个。

答案 1 :(得分:0)

您尚未为最后一个条件创建正确的表达式。请尝试下面的代码

var header_url = 'http://example.com';
//var header_url = 'http://example.com/index.html';
//var header_url = 'http://example.com/about.html';
//var header_url =  'http://example.com/contact.html';
if(/index/.test(header_url)||/home/.test(header_url)){
    console.log('index');
} else if(/about/.test(header_url)) {
    console.log('about');
} else if(/contact/.test(header_url)) {
    console.log('contact');
} else if(/\//.test(header_url)) {
   console.log('nothing');
}   

检查这个小提琴http://jsfiddle.net/anandgh/k63f3a33/1/