我可以有任何这样的例子:
<input type="text" class="some_class extra_1" />
<input type="text" class="some_class extra_4 some_class2" />
<textarea class="extra_17"></textarea>
我需要在“extra_”之后获取数字:
1、4、17
或完整的课程:
额外1、额外_4、额外_17
我可以有任何这样的例子:
<input type="text" class="some_class extra_1" />
<input type="text" class="some_class extra_4 some_class2" />
<textarea class="extra_17"></textarea>
我需要在“extra_”之后获取数字:
1、4、17
或完整的课程:
额外1、额外_4、额外_17
另外的选择:
var arr = $("input, textarea").map(function() {
try {
return /\s*extra_(\d+)\s*/.exec(this.className)[1];
} catch (e) {
return null;
}
}).get();
演示:http: //jsfiddle.net/nh7sv/
喜欢
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]
获取以 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"]
</p>
$('input, textarea').filter('[class*="extra_"]').each( function() {
var num = $(this).attr('class').split('extra_')[1].split(' ')[0];
alert( num );
});