示例:
<div>
<A><span class="bla">test</span></a>
<A><span class="bla">test test</span></a>
<A><span class="bla">test test test</span></a>
</div>
只是想知道我们是否可以这样做:
$('span.bla').click(function(){
$(this).addClass('selected').others_with_this_class().removeClass('selected');
});
或者我们真的需要制作两个不同的选择器,并逐个处理它们。
修改:
感谢大家的想法,我发现做了这样的事情: - )
if (!$(this).hasClass('selected'))
$(this).addClass('selected').parent().siblings('a').children('.selected').removeClass('selected');
答案 0 :(得分:4)
你是什么意思“一个一个地处理它们”?
为什么不从.selected
项中删除该类,然后将该类添加到您单击的项目中:
$('span.bla').click(function(){
$('.selected').removeClass('selected');
$(this).addClass('selected');
});
答案 1 :(得分:2)
我喜欢从所有内容中清除该类,然后将其添加到单个类中:
$('span.bla').click( function() {
$('span.bla').removeClass('selected');
$(this).addClass('selected');
}
答案 2 :(得分:1)
使用$.siblings()
:
$('span.bla').click(function(){
$(this).addClass('selected')
.parent()
.siblings()
.children('span')
.removeClass('selected');
});
这将找到范围的父级(<a>
),它的所有兄弟姐妹,以及那些兄弟姐妹的子级<span>
,并向其添加.current
。
答案 3 :(得分:1)
$('span.bla').click(function(){
$('span.bla').removeClass('selected');
$(this).addClass('selected');
});