我有一些标签:
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" id="hometab" class="active"><a href="http://www.mypage.com/" >Home</a></li>
<li role="presentation" id="contenttab"><a href="#content" aria-controls="content" role="tab" data-toggle="tab">content</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="home">home</div>
<div role="tabpanel" class="tab-pane" id="content">content</div>
</div>
当我的网址包含字符串?dir
时,我想在标签中添加一个类。
例如:如果我的网址为www.mypage.com/?dir=something
,则#contenttab
应处于有效状态。如果网址仅为
www.mypage.com
,则#contenttab
不应处于有效状态,但#hometab
应处于有效状态。
<script type="text/javascript">
$(document).ready(function() {
var url = location.pathname;
if ("url:contains('?dir')") {
$("#contenttab").attr("class","active");
$("#hometab").removeClass("active");
} else {
$("#contenttab").removeClass("active");
$("#hometab").attr("class","active");
}
});
</script>
我的脚本无效。 #contenttab
始终处于有效状态,#hometab
永远不会有效。
答案 0 :(得分:3)
尝试检查:
if ( url.indexOf( '?dir' ) !== -1 ) { ... }
或尝试:
var url = location.search; // or location.href;
if ( url.indexOf( '?dir' ) !== -1 ) { ... }
答案 1 :(得分:0)
var url = location.pathname;
if (url.indexOf('?dir') > -1) {
$("#contenttab").attr("class", "active");
$("#hometab").removeClass("active");
} else {
$("#contenttab").removeClass("active");
$("#hometab").attr("class", "active");
}
答案 2 :(得分:0)
尝试使用测试:
<script type="text/javascript">
$(document).ready(function() {
if (/\?dir/.test(location.pathname)){
$("#contenttab").attr("class","active");
$("#hometab").removeClass("active");
} else {
$("#contenttab").removeClass("active");
$("#hometab").attr("class","active");
}
});
</script>
感谢答案 How can I get query string values in JavaScript? 我认为最好和最安全的方法就是获得所需的查询字符串参数 dir 。当然,函数 getParameterByName()将返回用于获取任何其他查询字符串参数。
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
var dir=getParameterByName('dir');
$(document).ready(function() {
if (dir==''){
$("#contenttab").attr("class","active");
$("#hometab").removeClass("active");
} else {
$("#contenttab").removeClass("active");
$("#hometab").attr("class","active");
}
});
注意:如果参数多次出现 (?dir = lorem&amp; dir = ipsum ),你将获得第一个值(lorem)。