使用URL id - Jquery将类添加到另一个页面属性

时间:2015-05-12 09:05:40

标签: javascript jquery html

我已通过网址附加了ID。例如:当我点击Link 1时,它有#tab-2个ID,它会将我带到目标网页。在着陆页中,我发现哪个元素有#tab-2 id,然后我必须添加类.active

我试过但没有运气。请任何人更正我的代码。感谢

JS Fiddle link

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');
              }
    })
});

4 个答案:

答案 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');

})