以前使用jquery删除的一些css类,例如。
HTML
<div class="one someclass"></div>
<div class="two otherclass"></div>
<div class="one otherclass"></div>
<div class="two someclass"></div>
jquery的
$('div').removeClass();
这将删除所有类。
现在我想抓住以前为特定类应用的类。
$('div').addClass('someclass')
/* to which previously it was applied someclass in the above html
that is add someclass to first class - one and last class -two*/
$('div').addClass('otherclass')
/* to which previously it was applied otherclass in the above html
that is add otherclass to first class - two and last class -one*/
修改
即使是这样怎么做
<div class="one someclass"></div>
<div class="otherclass two"></div>
<div class="one otherclass"></div>
<div class="someclass one"></div>
答案 0 :(得分:2)
在删除之前保存。
var classes = $("div")[0].className;
$('div').removeClass();
// ... Some Code Later
$('div').addClass(classes);
逐字解决问题,您可以使用someClass
保存所有类:
function saveClasses(className) {
return $(className)[0].className.split(/\s+/)
.filter(function(c) { return c!=className; }).join(" ");
}
var classes = saveClasses(".someClass");
var $div = $('.someClass').removeClass();
// Some Code Later
$div.addClass(classes);
这将添加除someClass
以外的所有类。
答案 1 :(得分:1)
为此,我创建了两个function
的{{1}}和removeAllClass
。删除所有addOldClass
时,它会在名为class
的属性中存储,以便我们可以在添加旧oldClass
时使用它
试试这个:
class
答案 2 :(得分:0)
完全删除所有类的问题在于,很难找到要将类添加回以后的元素集。
这是一个问题类非常适合解决 - 因此我建议自动添加基于当前类名生成的新类名 - 而不是仅删除所有类,用这些新生成的类名替换它们。
例如,具有someclass
类的每个元素现在都将具有had-someclass
类。
以下是一些代码:
// replace all classes on all <div> elements with had-* classes instead
$('div').each(function() {
// get the current classes
var classes = this.className.split(/\s+/);
for (var i=0; i<classes.length; i++) {
// if it's not already a had-* class, make it one
if (classes[i].substring(0, 4) != 'had-') {
classes[i] = 'had-' + classes[i];
}
}
// remove all classes, and add the had-* classes instead
$(this).removeClass().addClass(classes.join(' '));
});
然后要添加选定的缺失类,您可以执行以下操作:
// find everything that used to have the 'someclass' class, and put it back
$('div.had-someclass').toggleClass('had-someclass someclass');
显示正在使用的小提琴在这里:http://jsfiddle.net/dy4rN/