Jquery不能将addClass添加到li

时间:2014-03-03 10:09:09

标签: jquery addclass

我让这个Jq将active类添加到<li>标记:

$("#main-nav li").each(function(index) {
        if(this.href.trim() == window.location)
            $(this).addClass("active");
            //alert(this.href.trim());
    });

HTML:

<div class="navbar-collapse collapse">
      <ul class="nav navbar-nav" id="main-nav">
        <li><a href="index.php">Home</a></li>
        <li><a href="about.php">About</a></li>
        <li><a href="contact.php">Contact</a></li>
</div>

但不知何故它不起作用,任何人都可以照顾出现问题吗?

3 个答案:

答案 0 :(得分:2)

您需要遍历锚点,而不是列表项。 href是锚的属性。执行该循环,然后您可以将.addClass()应用于最近的列表项。另外,如果您使用的是jQuery,那么您也可以使用可靠的jQuery trim()

$("#main-nav li a").each(function(index) {
    if($.trim(this.href) == window.location) {
        $(this).closest('li').addClass("active");
        //alert(this.href.trim());
    }
});

答案 1 :(得分:1)

你不会使用this.href.trim()获得href。你需要使用:

$(this).find('a').attr('href').trim()

答案 2 :(得分:0)

我的版本:

$("#main-nav li a").each(function(index) {
    if(this.href.trim() == window.location)
        $(this).parent().addClass("active");
});