2016-07-15 55 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

這是最好的 –