从字符串选择器中仅获取 class 个名称,jQuery 方式?
Get just class names from string selector, jQuery way?
假设我有如下字符串选择器:
input.js-pretty-select[type="radio"].selected
如何从这个字符串中获取 所有 class 名称(js-pretty-select
和 selected
),可能使用一些 jQuery 核心功能?
起初我想到了一些正则表达式,但后来我意识到 jQuery 可能已经在它的代码中的某处实现了它,比如在使用 $()
.
解析选择器时
这个怎么样:
$("input.js-pretty-select[type='radio'].selected").attr('class')
JSFIDDLE 演示 => http://jsfiddle.net/s1g2mwor/
var str = 'input.js-pretty-select[type="radio"].selected';
var arr = str.split('.'); //["input", "js-pretty-select[type="radio"]", "selected"]
arr.splice(0, 1); //removing the first entry (input)
for (var i = 0; i < arr.length; i++) {
arr[i] = arr[i].split('[')[0]; // removing [type="radio"]
};
console.log(arr); //["js-pretty-select", "selected"]
注意:此代码仅适用于您提供的字符串。如果你想要更复杂的东西,你的代码将需要处理所有复杂的场景
您可以使用此函数使用正则表达式从字符串中提取 类:
// This function accepts a string and return array of classes
function getClasses(s) {
var matches = s.match(/\.[a-zA-Z][\w-]*/g);
var classes = [];
for(var i=0; i < matches.length; i++) {
classes[i] = matches[i].substr(1);
}
return classes;
}
var c = getClasses('input.js-pretty_3select[type="radio"].selected');
假设我有如下字符串选择器:
input.js-pretty-select[type="radio"].selected
如何从这个字符串中获取 所有 class 名称(js-pretty-select
和 selected
),可能使用一些 jQuery 核心功能?
起初我想到了一些正则表达式,但后来我意识到 jQuery 可能已经在它的代码中的某处实现了它,比如在使用 $()
.
这个怎么样:
$("input.js-pretty-select[type='radio'].selected").attr('class')
JSFIDDLE 演示 => http://jsfiddle.net/s1g2mwor/
var str = 'input.js-pretty-select[type="radio"].selected';
var arr = str.split('.'); //["input", "js-pretty-select[type="radio"]", "selected"]
arr.splice(0, 1); //removing the first entry (input)
for (var i = 0; i < arr.length; i++) {
arr[i] = arr[i].split('[')[0]; // removing [type="radio"]
};
console.log(arr); //["js-pretty-select", "selected"]
注意:此代码仅适用于您提供的字符串。如果你想要更复杂的东西,你的代码将需要处理所有复杂的场景
您可以使用此函数使用正则表达式从字符串中提取 类:
// This function accepts a string and return array of classes
function getClasses(s) {
var matches = s.match(/\.[a-zA-Z][\w-]*/g);
var classes = [];
for(var i=0; i < matches.length; i++) {
classes[i] = matches[i].substr(1);
}
return classes;
}
var c = getClasses('input.js-pretty_3select[type="radio"].selected');