我已经获得了几个数千行的自动生成的
HTML文档,我需要清理源代码.大多数情况下需要删除类似“table-col – ##”的类名.这是一个两步问题:
>选择具有table-col – ##的任何和所有类,其中##是0-999之间的整数
>从元素中删除匹配的类,而不删除任何其他类
所以它归结为:如果可能的话,我需要一种方法在$()选择器中使用regexp,然后在每个()中获取所选类 – 或者将regexp应用于$.removeClass().谁能指出我正确的方向?
解决方法
如果只有数字是可以接受的,但也可以有其他字符,我会从这样的东西开始(未经测试,但在评论的帮助下编辑):
$("[class^='table-col-']").removeClass( function() { /* Matches even table-col-row */ var toReturn = '',classes = this.className.split(' '); for(var i = 0; i < classes.length; i++ ) { if( /table-col-\d{1,3}/.test( classes[i] ) ) { /* Filters */ toReturn += classes[i] +' '; } } return toReturn ; /* Returns all classes to be removed */ });