我有一个看起来像的div
Clases没有特定的顺序.如果我执行$(‘div’).attr(‘class’),那么我会获得该div的所有类的列表.我想要的只是获得不可调整大小的类,draggableor表.在这种情况下,我想要abc阴影.我该怎么做呢.
最佳答案
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设置为的字符串,则不需要第二次替换(您不需要去除前导空格和尾随空格).
但是,如果你想从一个元素中删除一组已知的类,那么就更好了:
$(...).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"
原文链接:https://www.f2er.com/jquery/428563.html