使用jQuery在两个元素之间切换类

时间:2010-08-25 18:58:54

标签: jquery

我有两个元素,每个元素都有一个类名。在某些事件上,我希望他们换班 所以基本上我想做这样的事情:

$("#div1").switchClassWith("#div2");

<div id="div1" class="someStylingClass">...content...</div>
<div id="div2" class="someOtherClass">...content...</div>

这会导致#div1someOtherClass作为其班级名称,#div2someStylingClass ...有任何建议吗?

4 个答案:

答案 0 :(得分:9)

您可以使用toggleClass()

 $('#div1,#div2').toggleClass('someStylingClass someOtherClass');

假设您从发布的示例开始,其中每个元素都有一个类或另一个类(但不是两个),那么这将按预期工作。

如果你需要交换课程而不知道你正在交换哪些课程,你可以这样做:

var $div1 = $('#div1'), $div2 = $('#div2'), tmpClass = $div1.attr('class');
$div1.attr('class', $div2.attr('class'));
$div2.attr('class', tmpClass);

答案 1 :(得分:1)

function SwitchClass(a,b){
  var aClass = a.attr('class');
  var bClass = b.attr('class');
  a.removeClass(aClass).addClass(bClass);
  b.removeClass(bClass).addClass(aClass);
}


SwitchClass($('div1'),$('div2'));

答案 2 :(得分:1)

伪代码



function swapClasses(element1, element2)
{
   class1List1 = getClassList(element1)
   classList2 = getClassList(element2)

   for class in classList1
   {
       element2.addClass(class)
   }

   //similarly for element1
}

function getClassList(element)
{
   //refer to http://stackoverflow.com/questions/1227286/get-class-list-for-element-with-jquery
}


答案 3 :(得分:0)