从classname中删除单词

时间:2015-11-25 17:22:11

标签: javascript jquery

我有一个类tab-detector one active的div和这个函数:

$(".tab-detector").click(function (e) {
    var classList = $(e.target).attr('class');
    classList.replace("tab-detector","");
    classList.replace("active","");
    alert(classList);
});

我认为它应该警告“one”,但我看到“tab-detector one active”而不是.replace()没有改变任何东西。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

.replace() method不会改变/改变初始字符串。您仍然需要将返回的值分配回初始字符串。

因此它应该看起来像:

$(".tab-detector").click(function (e) {
  var classList = $(this).attr('class');
  classList = classList.replace('tab-detector', '').replace('active', '');
  alert(classList);
});

或:

$(".tab-detector").click(function (e) {
  var classList = this.className.replace('tab-detector', '').replace('active', '');
  alert(classList);
});

如果您打算删除这些类,那么 应该代替.removeClass() method,因为这正是它的设计目标。

$(".tab-detector").click(function (e) {
  $(this).removeClass('tab-detector one');
});