Pin*_*kie 5 javascript jquery class attr
我有一个看起来像的div
<div class="draggable resizable abc table shadow"></div>
Run Code Online (Sandbox Code Playgroud)
Clases没有特定的顺序.如果我这样做,$('div').attr('class')那么我得到该div的所有类的列表.我想要的只是获得不是的类resizable,draggable或者table.在这种情况下我想要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"]
Run Code Online (Sandbox Code Playgroud)
请注意,如果您想要的只是一个适合设置 to 的字符串,则不需要第二个replace(您不需要去除前导和尾随空格)className。
但是,如果您尝试从元素中删除一组已知类,最好简单地:
$(...).removeClass("draggable resizable table");
Run Code Online (Sandbox Code Playgroud)
替代方案(不需要正则表达式):
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"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
802 次 |
| 最近记录: |