假设我有字符串选择器,例如:
input.js-pretty-select[type="radio"].selected
如何从此字符串中获取所有类名(js-pretty-select
和selected
),可能使用一些jQuery核心函数?
我一开始考虑了一些正则表达式,但后来我意识到jQuery可能已经在其代码中的某个地方实现了,就像在使用$()
解析选择器时那样。
答案 0 :(得分:1)
这个怎么样:
$("input.js-pretty-select[type='radio'].selected").attr('class')
答案 1 :(得分:1)
JSFIDDLE DEMO => 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"]
注意:此代码仅适用于您提供的字符串。如果您想要更复杂的东西,您的代码将需要处理所有复杂的场景
答案 2 :(得分:1)
您可以使用此函数使用正则表达式从字符串中提取类:
// 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');