Javascript jQuery是否做一些事情取决于url路径
我需要将css类添加到所有url中,从example.com/mine/first开始。我知道如何从根地址添加类,但我不能为/mine/first路径这样做 这就是我所拥有的: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
<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中,我只有“未捕获的语法错误:无效的正则表达式:缺少/”错误。未捕获的语法错误:无效的正则表达式:缺少/未捕获的语法错误:无效的正则表达式:缺少/