<ul id="list">
<li>item 1</li>
<li>item 2</li>
</ul>
$('#list li').click(function () {
alert($(this).hasClass('active')); // supposed to be an if
$(this).parent('ul').children('li').开发者_如何学JAVAremoveClass('active');
$(this).addClass('active');
});
Why does "$(this).hasClass('active')" always return true?
What is wrong with your code? For the first time it will false as per given HTML. But next time if you're clicking on same item then only it return true else it returns false only.
Demo
No it doesn't
http://jsbin.com/ubocu3/2
it returns false (the first time)
$('#list li').click(function () {
alert($(this).hasClass('active')); // supposed to be an if
$(this).parent('ul').children('li').removeClass('active');
$(this).addClass('active');
});
$(this).hasClass('active') is used to fetch element with that class name.
if u want to check availability of class use this code
<ul id="list">
<li>item 1</li>
<li>item 2</li>
</ul>
$('#list li').click(function () {
alert($(this).isClass('active')); // alert returns true if element has that class
if($(this).is('.active'))
{
$(this).parent('ul').children('li').removeClass('active');
$(this).addClass('active');
}
});
精彩评论