Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery是否做一些事情取决于url路径_Javascript_Jquery_Css - Fatal编程技术网

Javascript jQuery是否做一些事情取决于url路径

Javascript jQuery是否做一些事情取决于url路径,javascript,jquery,css,Javascript,Jquery,Css,我需要将css类添加到所有url中,从example.com/mine/first开始。我知道如何从根地址添加类,但我不能为/mine/first路径这样做 这就是我所拥有的: <script type="text/javascript"> $(function(){ var pathnameArr = location.pathname.split('/'); switch (pathnameArr[1]) { case 'mine/first': $(".c

我需要将css类添加到所有url中,从example.com/mine/first开始。我知道如何从根地址添加类,但我不能为/mine/first路径这样做

这就是我所拥有的:

<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>

$(函数(){
var pathnameArr=location.pathname.split('/');
交换机(路径名arr[1]){
“我的/第一个”案例:
$(“.container”).addClass('dontshow');
打破
“我的/第二个”案例:
$(“.container”).addClass('dontshow');
打破
}
});
谢谢。

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

$(function(){
    var pathnameArr = location.pathname.split('/');
    switch (pathnameArr.pop()) {
        case 'first':
            $(".container").addClass('dontshow');
            break;
        case 'second':
            $(".container").addClass('dontshow');
            break;
    }
});
因为“/”是分隔符“/”不会出现在
pathnameArr
中的任何值中。请尝试打开最后一个参数:

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

您是否尝试过
indexOf

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

您是否尝试过
indexOf

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

我会使用正则表达式

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

我会使用正则表达式

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

测试这一点的可靠方法可能是使用:


测试这一点的可靠方法可能是使用:



如果“/”是您的分隔符,“我的/第一个”永远不会是一个值。如果您
split(“/”)
,您会在
pathnameArr[1]
中得到
mine
,在
pathnameArr[2]
中得到
first
吗?您调试过这个并看到了
console.log(pathnameArr[1])
是什么吗?我可以说我根本不知道jQuery:(@sloan,你的
location.pathname
的值是多少?
alert(location.pathname);
?如果“/”是你的定界符,“我的/first”将永远不会是一个值。如果你
拆分('/')
,你会在
路径名arr[1]
中得到
我的
吗?在
路径名arr[2]中得到
第一个
?您调试过这个并看到了什么是
控制台.log(pathnameArr[1])
吗?我可以说我根本不知道jQuery:(@sloan,您的
位置.pathname
?从
警报(location.pathname)输出的值是多少;
?很好的解决方案,请注意它在旧IE中不起作用(对于
数组来说不是问题。indexOf
只是一个字符串(只保留了变量名)@davidkonrad是正确的
字符串。prototype.indexOf
从ECMAScript的第一版开始就已经实现了。很好的解决方案,只是要知道它在旧IE中不起作用(对于
数组来说不是问题。indexOf
只是一个字符串吗(只保留了变量名)@davidkonrad是正确的
String.prototype.indexOf
从ECMAScript的第一版开始就已经实现了。您还可以通过将正则表达式更改为
/mine/
非常容易地将其扩展到
/mine\/(.+?)
,它将匹配
/mine/first
/mine/second
/mine/which
,等等。谢谢Travis,但在Chromium中,我只有“Uncaught SyntaxError:Invalid regular expression:missing/”错误。您还可以通过将正则表达式更改为
/mine/^\/mine\/(.+?)非常轻松地将其扩展到
/mine//code>之后的任何路径
,它将匹配
/mine/first
/mine/second
/mine/which
,等等。谢谢Travis,但在Chromium中,我只有“未捕获的语法错误:无效的正则表达式:缺少/”错误。未捕获的语法错误:无效的正则表达式:缺少/未捕获的语法错误:无效的正则表达式:缺少/