我尝试添加和使用Java脚本IM也在这里使用多类减一类是我的代码
function enlargegreen() {
document.getElementByClassName('playlist-player').className += "enlarge";
document.getElementByClassName('playlist-player').className -= "shrink";
}
<div class="playlist-player shrink green" onmousedown="enlargegreen()" ></div>
我试着去减去收缩一部分,并与放大更换
$(".playlist-player").addClass("green test2").removeClass("playlist-player");
小提琴
关于addClass()
关于removeClass()
我做了一个快速小提琴在那里我在我的例子中使用addClass()和removeClass()。 一些关于两个:
1)removeClass():从每个元素集合中的匹配元素的删除单个类,多个类,或所有类。
2)addClass():将指定的类(或多个)到每个匹配元件。
如果jQuery是一个选项,你可以简单地使用addClass( http://api.jquery.com/addClass/ )和removeClass( http://api.jquery.com/removeClass/ )
然后,它会是什么样子:
$('.playlist-player').addClass('enlarge');
$('.playlist-player').removeClass('shrink');
这里有几个 简单 JS套路:
function addClass( element, name, remove ){
if ( element.className ) {
var re = new RegExp(
'(^|\\s+)' +
name.replace(/([^a-zA-Z0-9])/gi, '\\$1') +
'(\\s+|$)',
'g'
);
if ( remove ) {
element.className = element.className.replace( re, '' );
}
else if ( !re.test( element.className ) ) {
element.className += ' ' + name;
}
}
else if ( !remove ) {
element.className = name;
}
};
function removeClass( element, name ){
return addClass( element, name, true );
};
上述不作任何特殊字符的支票,可能打破RegExp
作为类名称的一部分 。 不过话说回来, 在我看来 ,你应该只真的有_
或-
超出了字母和数字。
更新
我已经添加了一点保障的现在,应该逃避任何非字母数字字符。
更新2
作为zzzzBov正确地指出存在与不匹配其现在应该纠正的类名的末尾错误。 它现在也加入了类,以确保一个以前并不存在之前检查。 我还去掉不区分大小写。
我很想知道是什么问题name.replace(/([^a-zA-Z0-9])/gi, '\\$1')
可能会导致,因为除了过度逃避我不能确定这可能是一个问题 - 在合理范围内 - 这些信息会使用那些在将来找到这个QA。
你不必一类命名playlist-player
。 你有一个类命名playlist-player shrink green
和类的名称不能有空格。 我认为你应该使用getElementsByClassName
。