0

例子:

<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');
4

4 回答 4

4

你是什​​么意思“一个一个地处理它们”?

为什么不从.selected项目中删除类,然后将类添加到您单击的项目中:

$('span.bla').click(function(){
   $('.selected').removeClass('selected');
   $(this).addClass('selected');
});
于 2012-05-29T21:40:40.660 回答
2

我喜欢从所有内容中清除类,然后将其添加到单个类中:

$('span.bla').click( function() {
    $('span.bla').removeClass('selected');
    $(this).addClass('selected');
}
于 2012-05-29T21:40:17.897 回答
1

使用$.siblings()

$('span.bla').click(function(){
    $(this).addClass('selected')
           .parent()
           .siblings()
           .children('span')
           .removeClass('selected');
});

这将找到 span ( ) 的父代、它的所有兄弟姐妹以及作为这些兄弟姐妹的子代的<a>任何s,并将其添加到它们中。<span>.current

于 2012-05-29T21:40:03.207 回答
1
$('span.bla').click(function(){
   $('span.bla').removeClass('selected');
   $(this).addClass('selected');
});
于 2012-05-29T21:40:48.680 回答