设置活动链接 jQuery

发布于 2024-12-06 01:54:21 字数 454 浏览 0 评论 0原文

我的网站上有这样的链接结构...

index.php - homepage
index.php?section=  - other pages

这是我编写的一段代码,用于更改活动链接的颜色...

$(function(){
     var path = location.pathname.substring(1);
     if ( path )
          $('#nav ul#navigation li a[href$="' + path + '"]').attr('class', 'selected');
});

但这没有考虑 PHP 链接结构,仅考虑平面文件链接。我如何才能使像 index.php?section= 这样的链接以及像 index.php 这样的基本链接发挥作用?

I have a link structure like this on my website...

index.php - homepage
index.php?section=  - other pages

here is a piece of code that I wrote to change the colour of the active link...

$(function(){
     var path = location.pathname.substring(1);
     if ( path )
          $('#nav ul#navigation li a[href$="' + path + '"]').attr('class', 'selected');
});

but this doesn't take into account of PHP link structures, only flat file links. How would I get this working for links like index.php?section= as well as the basic links like index.php?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

流年已逝 2024-12-13 01:54:21

使用类名而不是完整的 URL。这让它变得不那么啰嗦。

var path = document.location+""
path = path.split("?section=")
if(path.length>1) {
      $("."+path[1]).addClass('selected')
}

然后在你的html中:

<a class="section">...</a>
<a class="otherSection">...</a>

如果你想减少对url的依赖,你可以使用散列:

URL: http://yoursite.com?blabblah=xxx....#section1

然后使用 document.location.hash (这将 = "section1")作为部分指示符。它节省了您解析 URL 的步骤。

Use class names instead of the full URL. It makes it a bit less wordy.

var path = document.location+""
path = path.split("?section=")
if(path.length>1) {
      $("."+path[1]).addClass('selected')
}

Then in your html:

<a class="section">...</a>
<a class="otherSection">...</a>

If you want be a bit less url-dependent, you can use a hash:

URL: http://yoursite.com?blabblah=xxx....#section1

Then use document.location.hash (which will = "section1") as the section indicator. It saves you the step of parsing the URL.

末骤雨初歇 2024-12-13 01:54:21

您可以尝试删除 index.php?section= 并使用 contains 选择器 (*=)。

$(function() {
    var path = location.pathname.substring(1);

    if ( path.indexOf('?section=') ) {
        path = path.replace('index.php?section=', '');
    }

    if ( path )
        $('#nav ul#navigation li a[href*="' + path + '"]').attr('class', 'selected');
    }
});

You could try stripping out index.php?section= and use the contains selector (*=).

$(function() {
    var path = location.pathname.substring(1);

    if ( path.indexOf('?section=') ) {
        path = path.replace('index.php?section=', '');
    }

    if ( path )
        $('#nav ul#navigation li a[href*="' + path + '"]').attr('class', 'selected');
    }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文