JQuery得到元素的类名的其余部分,以字符串"whatever-"开头

Ira*_*kli 6 javascript jquery

我有js缓存名称以"whatever-"开头的类,

$('[class^="whatever-"], [class*=" whatever-"]')
Run Code Online (Sandbox Code Playgroud)

但我现在要做的就是得到其余的名字,例如在"what-9"的情况下,我想得到"9",我不知道怎么做,你能帮助我吗?

Sus*_* -- 7

试试这个

var check = "whatever-";         
    $('[class^="whatever-"], [class*=" whatever-"]').each(function () {    
        // Get array of class names   
        var cls = $(this).attr('class').split(' ');       
        for (var i = 0; i < cls.length; i++) {
            // Iterate over the class and log it if it matches
            if (cls[i].indexOf(check) > -1) {        
                console.log(cls[i].slice(check.length, cls[i].length));
            }       
        }    
    });
Run Code Online (Sandbox Code Playgroud)

这应该适用于有超过1个班级的情况.通过使用filter方法和一些方法,可能有更简洁的方法regex

检查小提琴

有点清洁使用 map

var check = "whatever-";
$('[class^="whatever-"], [class*=" whatever-"]').each(function () {
    var className = this.className;

    var cls = $.map(this.className.split(' '), function (val, i) {
        if (val.indexOf(check) > -1) {
            return val.slice(check.length, val.length)
        }
    });

    console.log(cls.join(' '));
});
Run Code Online (Sandbox Code Playgroud)

地图演示