比如有:
<a class="class-1 class-2 class-3 mod" href="XXX" id="testid">test</a>
如何一次性移除"class"开头所有的类样式?
$('#testid').removeClass().addClass('mod');
$('#testid').removeClass(function (i, v) {return v.replace('mod', '');});
都看错题了吗。。哈哈。
removeClass('class-1 class-2 class-3 mod')
$("a").attr("class", "") 直接改变属性试试
可以正则匹配一下,替换为空。
var classStr = $('a').attr('class').replace(/class-\d+ /g, '');
$('a').attr('class', classStr);
感谢 @KevinYue 提供更通用的版本:
$('a').attr('class', function (i, cls) { return cls.replace(/class-\d+ /g, ''); });
$('#testid').attr('class', '')
http://stackoverflow.com/questions/1227286/get-class-list-for-element-with-jquery
因为jQuery的removeClass可以callback,所以我想到的是这样,期待高手有更好的方案!
javascript
$('a').removeClass(function(index,className){ var arr = className.split(/\s+/); for (var i = 0; i < arr.length; i++) { if(arr[i].indexOf('class-') === -1){ arr.splice(i,1); i--; } }; return arr.join(' '); });