2016-07-09 2 views
1

현재 <a></a>에 클래스를 추가하려고 시도했으며 다른 활성 클래스를 다른 <a></a>에서 제거하려고했습니다. 내가 코드에 HTMLjQuery로 html 요소에서 클래스를 추가하거나 제거하는 방법

<ul> 
    <li> 
    <a href="#" class="active"> 
    Home 
    </a> 
    </li> 
    <li> 
    <a href="#"> 
    About 
    </a> 
    </li> 
    <li> 
    <a href="#"> 
    Service 
    </a> 
    </li> 
</ul> 

jQuery를

$('ul li a').click(function(e){ 
e.preventDefault(); 
$(this).addClass('active').siblings().removeClass('active'); 
}); 
+2

'$ (:

$(this).addClass('active').parent("li").siblings("li").children("a").removeClass('active'); 

업데이트 바이올린 클릭 한 태그 요소의 부모 형제의 자녀 인 태그 요소를 찾기 위해 아래의 코드를 사용 –

+1

@PranavCBalan, _3_ 메소드를 호출하는 것이 조금 비싸다고 생각합니다 .IMO ..()()()). – Rayon

+1

@ 레이용 : 단지 alt ernative method ... :) –

답변

2

$('ul li a').click(function(e){ 
 
e.preventDefault(); 
 
    $('ul li a').removeClass('active') 
 
$(this).addClass('active'); 
 
});
.active{color:red}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li> 
 
    <a href="#" class="active"> 
 
    Home 
 
    </a> 
 
    </li> 
 
    <li> 
 
    <a href="#"> 
 
    About 
 
    </a> 
 
    </li> 
 
    <li> 
 
    <a href="#"> 
 
    Service 
 
    </a> 
 
    </li> 
 
</ul> 
 
jQuery

당신은 다음을 클릭하는 활성 클래스를 추가 앵커의 모든 활성 클래스를 제거 할 수 있습니다 현재 요소를 통해 active 클래스를 적용 앵커

1

a 요소를

MY FIDDLE

를하려고했던 것은 부모 li

사용 $('ul li a.active') 선택과 remov에는 형제가 없습니다 전자 모든 active 클래스는 다음

$('ul li a').click(function(e) { 
 
    e.preventDefault(); 
 
    $('ul li a.active').removeClass('active') 
 
    $(this).addClass('active'); 
 
});
.active { 
 
    color: green; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<ul> 
 
    <li> 
 
    <a href="#" class="active"> 
 
    Home 
 
    </a> 
 
    </li> 
 
    <li> 
 
    <a href="#"> 
 
    About 
 
    </a> 
 
    </li> 
 
    <li> 
 
    <a href="#"> 
 
    Service 
 
    </a> 
 
    </li> 
 
</ul>

관련 문제