网址如下:http://example.com/download/
var pathname = window.location.pathname;
if(pathname=='download/'){
$("#subnav-content div:first").hide();
$("#subnav-content div:second").show();
}
为什么jquery中的上述代码不起作用?我希望当网址为http://example.com/download/时。显示secong div。
ps * :此检查会影响网站效果吗? *
答案 0 :(得分:2)
你需要领先的斜杠。
'/下载/'
如果您需要查询字符串参数,可以尝试使用正则表达式来匹配网址的下载部分:以下匹配/下载/.
if (window.location.pathname.match(/^\/download\//i))
关于jquery,没有:第二,你需要使用:eq(1)
var pathname = window.location.pathname;
if(pathname=='/download/'){
$("#subnav-content div:first").hide();
$("#subnav-content div:eq(1)").show();
}
对评论的回应
我在这里发表评论,因为评论中的格式很糟糕。匹配下载的正则表达式可以总结如下:
/
- 正则表达式匹配语法的开始
^
- 表示在屏幕一开始就开始匹配
\/
- 表示匹配文字字符串'/',这是一个必须转义的特殊字符
download
- 匹配文字字符串'download'
\/
- 再次表示匹配文字字符串'/'
/
- 匹配语法的结尾
i
- 正则表达式选项,我的意思是忽略大小写
我不清楚你的其他注意事项是什么。
答案 1 :(得分:2)
第二个不是选择器。你想要:
$("#subnav-content div:nth-child(2)").show();
答案 2 :(得分:1)
尝试使用
$("#subnav-content div:eq(0)")
$("#subnav-content div:eq(1)")
此外,您需要将代码绑定到一个事件,该事件将在文档准备就绪时被触发(load
或支持onDOMReady
),否则div
可能不存在在记忆中。
ps *:此检查会影响网站效果吗?*
每行代码都会影响网站性能。虽然不一定是可见的。