2016-07-15 52 views
0

我有一个包含相同的类多个div,有人点击了div中的一个之后,我想执行两个动作,将另一元素 -使用jQuery选择与同一类

添加类“ABC”到被点击 添加类“DEF”含有同一类 举例而言,所有其他的div股利 -

<div class="ZZZ"></div> 
<div class="YYY"></div> 
<div class="YYY"></div> 
<div class="YYY"></div> 
<div class="ZZZ"></div> 

如果有人点击第二个格,其结果应该是这样的 -

<div class="ZZZ"></div>  
<div class="YYY ABC"></div> <--clicked 
<div class="YYY DEF"></div> 
<div class="YYY DEF"></div> 
<div class="ZZZ"></div>  

这怎么可以用JQuery来完成?

谢谢!

回答

2

试试这个未经测试的代码:

$('div').on('click', function(e){ 
    e.preventDefault(); 
    // Find current class of clicked div, remove classes ABC and DEF, 
    // store it in currentClass variable 
    var currentClass = $(this).attr('class').replace('ABC', '').replace('DEF', '').trim(); 
    // remove classes ABC and DEF from all other divs: 
    $('div').removeClass('ABC').removeClass('DEF'); 
    // add class DEF for all divs with selected current class 
    $('.' + currentClass).addClass('DEF'); 
    // for selected element remove class DEF and add class ABC 
    $(this).removeClass('DEF').addClass('ABC'); 
}); 
+0

是啊,它的工作。 –

+0

这是我用过的一个,虽然我想其他人也可以工作。谢谢大家! –

0

这(完全未经测试)如何?

$('.YYY').click(function (e) { 
    e.preventDefault(); 
    $('.YYY').removeClass('ABC').addClass('DEF'); 
    $(this).addClass('ABC'); 
}); 
0

首先你需要给一个共同的属性,所有的div。即

<div class="rrr ZZZ"></div> 
<div class="rrr YYY"></div> 
<div class="rrr YYY"></div> 
<div class="rrr YYY"></div> 
<div class="rrr ZZZ"></div> 

我给类 'RRR' 到所有div。现在让我们写jquery

$('.rrr').click(function (e) { 
    var classn = $(this).attr('class').replace('rrr ', ''); 
    $('.' + classn).addClass('DEF'); 
    e.preventDefault(); 
    $(this).removeClass('DEF').addClass('ABC'); 
}); 

我希望你能理解流程。它帮助你

+0

是的,我的兄弟,刚刚解决了。我忘了保留一个“)”添加前 –

+0

非常感谢你siddel ...这是给输出,没有错误.... –

2

你可以像这样做,

$('div').click(function() { 
    $('div').removeClass('ABC').removeClass('DEF'); 

    var selection = $(this).attr('class'); 

    $(this).addClass('ABC'); 
    $(this).siblings('.' + selection).addClass('DEF'); 
}); 

见例如:https://jsfiddle.net/otps7sfa/

+0

这是最好的 –