选择当前链接

时间:2009-07-04 10:11:14

标签: javascript jquery

如果我有这样的div,我如何通过jquery选择当前链接:

<div id='navigation'>
  <a href='users/home'>home</a> |
  <a href='projects/browse'>home</a>
  <a href='discussions/browse'>home</a>
  <a href='search/dosearch'>home</a>
</div>

注意我试过了:

$(document).ready(function(){
    $("#navigation a").click( function(event)
    {
       var clicked = $(this); // jQuery wrapper for clicked element
       // ... click-specific code goes here ...
       clicked.addClass('selected');
    });
});

但是当我点击一个链接时,它会选择一个链接并添加类.selected但是它会重新加载页面以便导航到一个页面然后全部消失。有小费吗?

由于

3 个答案:

答案 0 :(得分:5)

这应该有效:

$(document).ready(function() {
    var loc = window.location.href; // The URL of the page we're looking at
    $('#navigation a').each(function() {
        if (loc.indexOf(this.href) !== -1) { // If the URL contains the href of the anchor
            $(this).addClass('selected'); // Mark it as selected
        }
    });
});

它基本上遍历导航项,如果当前页面的URL包含锚点的href,它会将类selected添加到锚点。

答案 1 :(得分:1)

是的,请从您的click()回调参数中获取该事件,然后使用e.preventDefault();(请参阅there)。

return false

或者在链接中添加target='_blank'属性,以便他们在某个其他页面或标签中打开链接,如果您仍希望浏览器在某处打开该链接。

答案 2 :(得分:0)

$(document).ready(function(){
    $("#navigation a").click( function(event)
    {
       var clicked = $(this); // jQuery wrapper for clicked element
       // ... click-specific code goes here ...
       clicked.addClass('selected');
       return false;
    });
});

不要忘记return false