获取元素类名的部分

get the part of element class name

本文关键字:元素 获取      更新时间:2023-09-26

我可以有以下任何一个例子:

<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

另一个选项:

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]

http://jsfiddle.net/LLeQF/

$('input, textarea').filter('[class*="extra_"]').each( function() {
    var num = $(this).attr('class').split('extra_')[1].split(' ')[0];
    alert( num );
});

获取以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"]