我的jquery语法有什么问题?

时间:2017-05-01 18:01:06

标签: jquery html5

我的网站上已经加载了这个包含php include的导航,并且我必须通过在加载文档后运行我的脚本来更改我的代码以解决这个问题。< / p>

另外,如果他们通过index.php以外的链接访问该网站,则右链接不会被激活,所以我必须找到&amp;根据网址设置正确的活动链接

所以这是我到目前为止提出的代码,但它没有工作,我收到语法错误。

$(document).ready($("nav ul li a").href == window.location.pathname {
 $(this).addClass("active");
});

有什么建议吗?

解决方案 -

$(document).ready(function() {
    $("nav ul li a").each(function(){
        var myLinkHref = $(this).attr('href');
        myURLPath = window.location.href;
        if ( myLinkHref == myURLPath ){
            $(this).addClass("active");
        }
    });
});

注意:在索引页面上,window.location.href通常返回http://www.example.com/而不是http://www.example.com/index.php,因此请确保您的主链接是不包括index.php的完整路径,因此它返回true。

感谢所有帮助人员!

3 个答案:

答案 0 :(得分:1)

现在您正在为函数分配函数。 $(document).ready()是页面加载后脚本的包装器。你可能想要更像

的东西
$(document).ready(function() {
  //do your things here;
});

虽然我无法确定你究竟想要做什么。 window.location.pathname是一个只读属性,但是你给它一个带有语句的对象。也许

$("nav ul li a").addClass("active");

更接近您的意思,但这会将active类添加到导航栏上链接列表中的每个链接。

答案 1 :(得分:0)

试试这段代码:

$(window).load(function(){
    $("nav ul li a").each(function(){
        var href = $(this).attr('href');
        if ( href == window.location.pathname ){
            $(this).addClass("active");
        }
    });
});

说明: 加载整个文档后,在每个&#34;元素&#34;中进行循环。在里面&#34; nav ul li&#34;。获得HREF并进行比较。如果相等,请添加&#34; active&#34;类。

我跳了它帮助

答案 2 :(得分:-1)

尝试以下代码,

$( document ).ready(function() {
     $( 'nav ul li a' ).each(function( ) {
          if($(this).attr('href') == window.location.pathname) {
              $(this).addClass("active");
          }
     });
});

您的文档就绪功能的语法不正确。您需要像上面一样准备好写文档。

您需要遍历所有菜单项,以检查您的网址是否与链接相匹配。将活动类添加到匹配项。