我想将函数传递给.addClass(),将“green”类添加到已经具有“red”类的div中。 这是我的代码 Fiddle
$( "two" ).addClass(function( index, currentClass ) {
var addedClass;
if ( currentClass === "red" ) {
addedClass = "green";
}
return addedClass;
});
这是我的HTML
<div class='one'>Hi there</div>
<div class='two red'>Hello</div>
这是我的css
.red {
background: red;
}
.green {
background: green;
}
答案 0 :(得分:4)
您可以这样做:
<div class='one'>Hi there</div>
<div class='two black'>Hello</div>
$('.black').removeClass('black').addClass('red');
答案 1 :(得分:1)
因为b的值是two black
而你将它与黑色进行比较,它总是返回false,所以请尝试:
var one = $('.one');
var two = $('.two');
two.addClass(function (a, b) {
var s;
if (b.indexOf('black')>0) {
s = 'red';
}
return s;
});
但是您应该知道它会为您的元素添加类,所以在此之后,如果您不想要黑色,那么您的课程将为two black red
,而不是使用以下内容删除它:
$(this).removeClass('black')
答案 2 :(得分:0)
这也可以。
var one = $('.one');
var two = $('.two');
two.addClass(function( index, currentClass ) {
var addedClass;
var $class = currentClass.split(' ')
for(i in $class){
if ( $class[i] === "black") {
addedClass = "red";
}
}
return addedClass;
});