1

我可以有任何这样的例子:

<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

4

4 回答 4

3

另外的选择:

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/

于 2012-08-30T09:13:47.153 回答
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]
于 2012-08-30T09:06:27.860 回答
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"] 

​</p>

于 2012-08-30T09:08:09.820 回答
1

http://jsfiddle.net/LLeQF/

$('input, textarea').filter('[class*="extra_"]').each( function() {
    var num = $(this).attr('class').split('extra_')[1].split(' ')[0];
    alert( num );
});
于 2012-08-30T09:09:07.913 回答