加减附加类(add and subtract additional classes)

2019-10-18 02:00发布

我尝试添加和使用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>

我试着去减去收缩一部分,并与放大更换

Answer 1:

$(".playlist-player").addClass("green test2").removeClass("playlist-player");

小提琴

关于addClass()

关于removeClass()

我做了一个快速小提琴在那里我在我的例子中使用addClass()和removeClass()。 一些关于两个:

1)removeClass():从每个元素集合中的匹配元素的删除单个类,多个类,或所有类。

2)addClass():将指定的类(或多个)到每个匹配元件。



Answer 2:

如果jQuery是一个选项,你可以简单地使用addClass( http://api.jquery.com/addClass/ )和removeClass( http://api.jquery.com/removeClass/ )

然后,它会是什么样子:

$('.playlist-player').addClass('enlarge');
$('.playlist-player').removeClass('shrink');


Answer 3:

这里有几个 简单 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。



Answer 4:

你不必一类命名playlist-player 。 你有一个类命名playlist-player shrink green和类的名称不能有空格。 我认为你应该使用getElementsByClassName



文章来源: add and subtract additional classes