我可以有任何这样的例子:
<input type="text" class="some_class extra_1" />
<input type="text" class="some_class extra_4 some_class2" />
<textarea class="extra_17"></textarea>
我需要在“额外_”之后得到这个数字:
1,4,17
或完整的课程:
extra1,extra_4,extra_17
答案 0 :(得分:3)
另一种选择:
var arr = $("input, textarea").map(function() {
try {
return /\s*extra_(\d+)\s*/.exec(this.className)[1];
} catch (e) {
return null;
}
}).get();
答案 1 :(得分:2)
像
var numbers = [ ];
$('input, textarea').each(function() {
numbers = numbers.concat( this.className.split( /\s+/ ).filter(function( cl ) {
return cl.indexOf( 'extra' ) === 0;
}).map(function( cl ) {
return +cl.split( '_' )[ 1 ];
}) );
})
console.log( numbers ); // [1, 4, 17]
答案 2 :(得分:1)
获取以extra _
开头的类的元素获取元素
$('[class^="extra_"]');
获得完整的课程
$('[class^="extra_"]').map(function(_, x) { return x.getAttribute('class'); });
获得正确的数字
$('[class^="extra_"]').map(function(_, x) {
return parseInt(x.getAttribute('class').split('_')[1], 10);
});
要获取包含extra_的所有元素并返回数字: -
var t = $('[class*=extra_]').map(function() {
return this.className.match(/extra_\d+/)[0].split('_')[1];
});
returns ["1", "42", "17"]
答案 3 :(得分:1)
$('input, textarea').filter('[class*="extra_"]').each( function() {
var num = $(this).attr('class').split('extra_')[1].split(' ')[0];
alert( num );
});