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

または完全なクラス:

extra1、extra_4、extra_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 に答える