2011-12-21 63 views
2

我有2个主div。组1和组2。这些组div包含其他每个2(或更多)div。该组内的所有div都有一类.grp_item。现在grp_item是display:none,每个组中只有一个div有一个类.sel,它是display:blockdiv之间的交换类

如何在组之间交换类.sel? Div在组内的内容相同。

下面是结构:

<div id="group1"> 
    <div class="grp_item"> 
     <div> 
     Div First 
     </div> 
    </div> 
    <div class="grp_item sel"> 
     <div> 
     Div second 
     </div> 
    </div> 
</div> 

<div><button id="swap">SWAP</button></div> 

<div id="group2"> 
    <div class="grp_item sel"> 
     <div> 
     Div First 
     </div> 
    </div> 
    <div class="grp_item"> 
     <div> 
     Div Two 
     </div> 
    </div> 
</div> 

因此,对于这个例子,当交换按钮按下时,在一组中设置.sel到第一个div和在组2设置.sel到DIV两个。

这里是结构的小提琴:http://jsfiddle.net/d6TFh/

请注意,我不能在内部div的添加任何类,所以我会想象我应该是第一次在类的每个然后删除它们。

这可能使用.contain()或任何其他方式?

+0

嗯.. 。我从来没有听说过'$(element).on(“click”,function(){});'在jQuery中......我认为它是'$(element).click(function(){}) ;'或'$(element).trigger(“click”,function(){});' – Nathan

+2

@Nathan:http://api.jquery.com/on –

+0

@AndrewWhitaker哦,好的。我搜索谷歌,但它没有提及任何关于'.on()' – Nathan

回答

1

根据与艾曼·萨法迪你们的谈话,我认为这是你在找什么:

var a = $('#anything .sel').attr('id') 
var b = $('#something .sel').attr('id') 

$('#anything .sel').removeClass('sel') 
$('#anything').find('#' + b).addClass('sel'); 

$('#something .sel').removeClass('sel') 
$('#something').find('#' + a).addClass('sel'); 

而且的jsfiddle:http://jsfiddle.net/d6TFh/10/

+0

这就是我一直在寻找的东西。谢谢 – jQuerybeast

3

试试这个:http://jsfiddle.net/d6TFh/3/

$("button").on("click", function() { 
    $('div[id^="group"] > div').toggleClass('sel') 
}); 
+0

太棒了。从来没有想到这一点。虽然它似乎被限制在“组(NO)”上。 – jQuerybeast

+0

如果group1和group2分别是grp和group,我该怎么办?例如,group1 = grp,group2 =组 – jQuerybeast

+0

是的,但我只是遵循示例代码。将DIV选择器替换为适合您的最佳选择。如果您想分享更多标记,我很乐意帮您缩小范围。 –