我已通过网址附加了ID。例如:当我点击Link 1
时,它有#tab-2
个ID,它会将我带到目标网页。在着陆页中,我发现哪个元素有#tab-2
id,然后我必须添加类.active
。
我试过但没有运气。请任何人更正我的代码。感谢
HTML
<div class="menu">
<ul>
<li><a href="http://jsfiddle.net/gscyoa0j/1/#tab-2">LINK 1</a></li>
<li><a href="http://jsfiddle.net/gscyoa0j/1/#tab-44">LINK 2</a></li>
<li><a href="http://jsfiddle.net/gscyoa0j/1/#tab-74">LINK 3</a></li>
</ul>
</div>
目标网页
<div class="tab">
<ul>
<li><a id="tab-2" class="active" >LINK 1 Content</a></li>
<li><a id="tab-44" >LINK 2 Content</a></li>
<li><a id="tab-74" >LINK 3 Content</a></li>
</ul>
</div>
Jquery的
$(document).ready(function(){
$(".menu ul li a").each(function(){
var url = window.location.pathname;
var id = url.substring(url.lastIndexOf('/') + 1);
var land = $('.tab').find("id");
if( land == id ) {
$('this').addClass('active');
}
})
});
答案 0 :(得分:1)
假设我已了解您的要求,您可以使用window.location.hash
从网页的网址中检索哈希值。然后,您可以使用它直接选择所需的元素,并在加载新页面时为其添加一个类:
$(function() {
var id = window.location.hash; // = '#tab-2', in your first link.
$(id).addClass('active');
});
答案 1 :(得分:1)
试试这个:
http://www.w3schools.com/jsref/prop_loc_hash.asp
$(document).ready(function(){
var hash = window.location.hash;
$(hash).addClass('active');
});
我希望它有所帮助。
答案 2 :(得分:0)
将$('this').addClass('active');
替换为$(this).addClass('active');
if( land == id ) {
$(this).addClass('active');
}
答案 3 :(得分:0)
使用event.preventDefault
可以阻止默认操作,并使用window.location.hash
获取网址中的哈希元素
$(".menu ul li a").click(function(event){
event.preventDefault();
var url = window.location.hash;
$(".tab ul li a").removeClass('active');
$(url).addClass('active');
})