window.location.pathname的addClass(' active') - url没有文件扩展名

时间:2015-01-30 15:25:08

标签: javascript jquery url navigation

这是我在这里的第一个问题,我被困住了,并没有找到我想要的答案。我有这种情况,我希望.addClass('active')导航链接。如果window.location.pathname的扩展名为.html.php,则效果很好。

我有"很好"通过.htaccess的URL,它隐藏了文件的扩展名,如下所示:

http://mydomain/biography代替http://mydomain/biography.php

所以这是我写的代码 HTML

    <nav>
       <ul>
         <li><a href="index.php">Home</a></li>
         <li><a href="biography.php">Bio</a></li>
         <li><a href="somelink.php">Something</a></li>
         <li><a href="contact.php">Contact</a></li>
       <ul>
    </nav>

的jQuery

$(document).ready(function() {
    $("nav [href]").each(function() {
    if (this.href == window.location.href) {
        $(this).addClass("active");
        }   
    });
 });

我认为.htaccess代码对于这种情况不是必需的

有没有办法解析this.href并排除文件扩展名(在我的情况下是.php)还是有更好的方法来解决这个问题?

提前致谢! = d

2 个答案:

答案 0 :(得分:0)

Phillip100 - 谢谢你,你用这个帮我,也许不是直接的,但是你的代码迫使我从其他角度来看,我没有替换,我只是添加了扩展名! = D

对我有用的代码是:

$(document).ready(function() {
  var location = window.location.href + '.php';        
   $("nav [href]").each(function() {
    if (this.href == location) {
    $(this).addClass("active");
}  

我尝试通过路径名使其工作,但是href也有帮助,通过这段代码,我得到了我想要的东西,感谢所有帮助过的人! = d

答案 1 :(得分:0)

// 100%的工作量

$("nav [href]").each(function() {
      var pathname = window.location.pathname;
      var plink = this.href.search(pathname);
      if(plink > 0){
         $(this).addClass("current");
      }
    });