我有一个类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()
没有改变任何东西。
我做错了什么?
答案 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);
});
如果您打算删除这些类,那么 应该3>代替.removeClass()
method,因为这正是它的设计目标。
$(".tab-detector").click(function (e) {
$(this).removeClass('tab-detector one');
});