在Jquery中删除属性html

时间:2014-04-17 11:01:03

标签: jquery

我在删除标记class="active"中的属性li时遇到问题。

我在标记<li>中有2个类。

一个是:活跃,

另一个是:下拉

但我只想删除之前的class="active",并在点击它时将其添加到代码<li>。  但是当我删除时,class="dropdown"也被删除了。

我知道我的代码有问题,但我不知道如何修复它。

任何人都可以帮助我:)。

抱歉,因为我的英语不好:)

HTML

<ul class="nav nav-justified">
     <li class="active"><a href="#">Home</a></li>
     <li><a href="#">Projects</a></li>
     <li><a href="#">Services</a></li>
     <li class="dropdown">
         <a class="dropdown-toggle" data-toggle="dropdown" href="#">
              Dropdown
              <span class="caret"></span>
         </a>
         <ul class="dropdown-menu" role="menu">
             <li>Hoai Thy</li>
             <li>My Huyen</li>
         </ul>
     </li>
     <li><a href="#">About</a></li>
     <li><a href="#">Contact</a></li>
</ul>

的Javascript

$(document).ready(function(){
$('.dropdown-toggle').dropdown()
    $(".nav-justified li").each(function(){
    $(this).click(function(){
        $(".nav-justified li").removeAttr();
        $(this).attr("class","active");
     });
   });
});

4 个答案:

答案 0 :(得分:3)

基于toggleClass的答案已经发布。 Alterntivate是删除和添加类,但是在jQuery中通过removeClassaddClass执行,而不是通过attr执行。可能有其他(纯粹的演示)类要保持不变。

$(".nav-justified li").click(function(){
   $(".nav-justified li").removeClass('active');
   $(this).addClass("active");
});

此外,您不需要.each() - .click(function(){})将事件绑定到集合中的所有元素

答案 1 :(得分:1)

使用toggleClass()代替删除属性并再次添加属性:

$(".nav-justified li").toggleClass('active');

removeAttr()方法不会删除类名,但会删除整个属性。

答案 2 :(得分:0)

使用.removeClass()删除class.also使用.addClass()添加类active.Try this:

 $(this).click(function(){
    $(".nav-justified li.active").removeClass('active');
    $(this).addClass("active");
});

答案 3 :(得分:0)

这对你有用。

    $(".nav-justified li").each(function(){
        $(this).toggleClass('active')
     });