jQuery addClass有些问题

时间:2014-05-08 05:19:25

标签: jquery

我想将函数传递给.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;
 }

3 个答案:

答案 0 :(得分:4)

您可以这样做:

<div class='one'>Hi there</div>
<div class='two black'>Hello</div>

$('.black').removeClass('black').addClass('red');

Fiddle

答案 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;
});

Here is demo

但是您应该知道它会为您的元素添加类,所以在此之后,如果您不想要黑色,那么您的课程将为two black red,而不是使用以下内容删除它:

$(this).removeClass('black')

Here is demo

答案 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;
});