javascript - jQuery 获得某些类而不是其他类

标签 javascript jquery class attr

我有一个看起来像的div

<div class="draggable resizable abc table shadow"></div>

类(class)没有特定的顺序。如果我执行 $('div').attr('class'),那么我会得到该 div 的所有类的列表。我想要的是只获取不可resizabledraggabletable 的类。在这种情况下,我想要 abc shadow。我该怎么做。

最佳答案

var all  = "draggable resizable abc table shadow";
var some = all.replace(/(?:^|\s)(resizable|draggable|table)(?=\s|$)/g, '');

console.log(some);
// " abc shadow"

console.log(some.replace(/^\s+|\s+$/g,''));
// "abc shadow"

console.log(some.split(/\s+/));
// ["", "abc", "shadow"]

请注意,如果您只需要一个适合设置 className 的字符串,则不需要第二个 replace(您不需要去除前导和尾随空格) 到。

但是,如果您只是想从一个元素中删除一组已知的类,那么简单得多:

$(...).removeClass("draggable resizable table");

替代方案(不需要正则表达式):

var ignore = {resizable:1, draggable:1, table:1};
var all = "draggable resizable abc table shadow".split(' ');
for (var subset=[],i=all.length;i--;) if (!ignore[all[i]]) subset.push(all[i]);

console.log(subset);
// ["shadow","abc"]

console.log(subset.join(' '));
// "shadow abc"

关于javascript - jQuery 获得某些类而不是其他类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7812481/

相关文章:

javascript - 如何将 javascript 变量分配给输入文本字段?

javascript - 在 javascript 中将数字与设置为 POSITIVE_INFINITY 和 MAX_VALUE 的 var 进行比较后返回“未定义”

javascript - 如何获取 JSON 中现有特定名称的数量

javascript - onclick 函数不运行第一次点击

javascript 在循环数组中打印 document.write 适用于数组,而不适用于 document.getElementById?

javascript - 如何找到 DIVS 的 ID,并将这些名称作为类分配给其他 DIVS?

带资源字典的wpf类库

javascript - 如何仅使用 javascript 切换/切换 div onclick 的类

c++ - 如何将类型为抽象类的变量转换为其子类?

javascript - 使用循环动态更改 Ajax 数据