Commit 94b0bf5f authored by Jörn Zaefferer's avatar Jörn Zaefferer

Changed implementation of removeClass: No more regex, tested and working in...

Changed implementation of removeClass: No more regex, tested and working in FF1.5, IE6 and Opera9 (tests added)- see http://jquery.com/discuss/2006-September/012088/
parent ca5b83c5
......@@ -1373,9 +1373,22 @@ jQuery.extend({
o.className += ( o.className ? " " : "" ) + c;
},
remove: function(o,c){
/*
o.className = !c ? "" :
o.className.replace(
new RegExp("(^|\\s*\\b[^-])"+c+"($|\\b(?=[^-]))", "g"), "");
new RegExp("(^|\\s*\\b[^-])"+c+"($|\\b(?=[^-]))", "g"), "");*/
if( !c ) {
o.className = "";
} else {
var classes = o.className.split(" ");
for(var i=0; i<classes.length; i++) {
if(classes[i] == c) {
classes.splice(i, 1);
break;
}
}
o.className = classes.join(' ');
}
},
has: function(e,a) {
if ( e.className != undefined )
......@@ -3177,6 +3190,14 @@ jQuery.macros = {
* }
* ok( pass, "Remove Class" );
*
* @test var div = $("div").addClass("test").addClass("foo").addClass("bar");
* div.removeClass("test").removeClass("bar").removeClass("foo");
* var pass = true;
* for ( var i = 0; i < div.size(); i++ ) {
* if ( div.get(i).className.match(/test|bar|foo/) ) pass = false;
* }
* ok( pass, "Remove multiple classes" );
*
* @name removeClass
* @type jQuery
* @param String class A CSS class to remove from the elements
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment