我有一份JavaScript代码,可以缓存那些以“whatever-”开头的类。
$('[class^="whatever-"], [class*=" whatever-"]')
但是现在我想要做的是获取名称的其余部分,例如在“whatever-9”的情况下,我想要获取“9”,我不知道该如何做,你能帮我吗?
我有一份JavaScript代码,可以缓存那些以“whatever-”开头的类。
$('[class^="whatever-"], [class*=" whatever-"]')
但是现在我想要做的是获取名称的其余部分,例如在“whatever-9”的情况下,我想要获取“9”,我不知道该如何做,你能帮我吗?
试试这个
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));
}
}
});
当存在多个类时,这种方法也适用。可以使用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(' '));
});
$('[class^="whatever-"], [class*=" whatever-"]').each(function () {
var classname = this.className;
var classsparts = classname.split('whatever-');
var result = classsparts[1]
console.log(result);
});
var classname = this.className
会更好。 :) - Mr_Green或者如果你喜欢一点正则表达式,我会使用这个,因为嘿,它只有一行。
$("*").filter(function(){ return /whatever-.+/.test( $(this).attr("class") ) } );