jQuery做的事情取决于url路径

时间:2013-09-27 19:44:36

标签: javascript jquery css

我需要将css类添加到所有url中,从example.com/mine/first开始。我知道如何从根地址添加类,但我无法为/ mine / first path执行此操作。

这就是我所拥有的:

<script type="text/javascript">
$(function(){
    var pathnameArr = location.pathname.split('/');
    switch (pathnameArr[1]) {
 case 'mine/first':
  $(".container").addClass('dontshow');
 break;
 case 'mine/second':
  $(".container").addClass('dontshow');
 break;
 }
});
</script>

感谢。

4 个答案:

答案 0 :(得分:2)

您是否尝试过indexOf

(function(){
    var pathnameArr = location.pathname;
    if (pathnameArr.indexOf('mine/first')>-1) {
      $(".container").addClass('dontshow');
    }
    if (pathnameArr.indexOf('mine/second')>-1) {
      $(".container").addClass('dontshow');
    }
});

答案 1 :(得分:1)

由于“/”是您的分隔符,“/”不会出现在pathnameArr中的任何值中。而是尝试打开最后一个参数:

$(function(){
    var pathnameArr = location.pathname.split('/');
    switch (pathnameArr.pop()) {
        case 'first':
            $(".container").addClass('dontshow');
            break;
        case 'second':
            $(".container").addClass('dontshow');
            break;
    }
});

答案 2 :(得分:1)

测试此方法的有效方法可能是使用RegExp.prototype.test

$(function() {
  if ((/^\/mine\/(first|second?)/).test(window.location.pathname)) {
    $('.container').addClass('dontshow');
  }
});

答案 3 :(得分:0)

我会使用正则表达式。

$(function () {
    var regexp = /^\/mine\/(first|second)/;
    if ( regexp.test(location.pathname) ) {
        $(".container").addClass('dontshow');
    }
});