使用jQuery在两个元素之间切换类
我有两个元素,每个元素都有一个类名。在某些情况下,我希望他们换班。使用jQuery在两个元素之间切换类,jquery,Jquery,我有两个元素,每个元素都有一个类名。在某些情况下,我希望他们换班。 所以基本上我想这样做: $("#div1").switchClassWith("#div2"); <div id="div1" class="someStylingClass">...content...</div> <div id="div2" class="someOtherClass">...content...</div> $(“#div1”).switchClassW
所以基本上我想这样做:
$("#div1").switchClassWith("#div2");
<div id="div1" class="someStylingClass">...content...</div>
<div id="div2" class="someOtherClass">...content...</div>
$(“#div1”).switchClassWith(“#div2”);
…内容。。。
…内容。。。
这将导致#div1
将someOtherClass
作为其类名,而#div2
将somestyleingclass
作为其类名。。。有什么建议吗?您可以使用:
假设您从发布的示例开始,其中每个元素都有一个类或另一个类(但不是两个),那么这将按预期工作
如果需要在不知道要交换哪些类的情况下交换类,可以执行以下操作:
var $div1 = $('#div1'), $div2 = $('#div2'), tmpClass = $div1.attr('class');
$div1.attr('class', $div2.attr('class'));
$div2.attr('class', tmpClass);
?伪代码
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
}
.toggleClass('someStyleingClass someOtherClass')
:)@Nick谢谢,修改答案最好缓存div1和div2选择。在这种情况下,您已经选择了两次而不是一次。我知道必须有一些甜蜜的,甜蜜的,一行来解决这个问题!你知道这些类是什么吗,或者它们可能是什么吗?建议:这个例子看起来更像swapclass(div1,div2),而不是div1。switchClassWith(div2)@Nick:是的,我知道类名是什么,所以我只是想找一些比创建函数更简单的东西,必须创建临时变量之类的。。。
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'));
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
}