Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取元素类名称的部分_Javascript_Jquery - Fatal编程技术网

Javascript 获取元素类名称的部分

Javascript 获取元素类名称的部分,javascript,jquery,Javascript,Jquery,我可以举以下任何一个例子: <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 或全班: 额外的1,额外的4,额外的17 var numbers = [

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

<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

或全班:

额外的1,额外的4,额外的17

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); 
});
要获取类中包含额外_uu的所有元素并返回数字,请执行以下操作:-

var t = $('[class*=extra_]').map(function() {
  return this.className.match(/extra_\d+/)[0].split('_')[1];
});

returns ["1", "42", "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); 
});
要获取类中包含额外_uu的所有元素并返回数字,请执行以下操作:-

var t = $('[class*=extra_]').map(function() {
  return this.className.match(/extra_\d+/)[0].split('_')[1];
});

returns ["1", "42", "17"] 

另一种选择:

var arr = $("input, textarea").map(function() {
    try {
        return /\s*extra_(\d+)\s*/.exec(this.className)[1];
    } catch (e) {
        return null;
    }
}).get();
演示:另一个选项:

var arr = $("input, textarea").map(function() {
    try {
        return /\s*extra_(\d+)\s*/.exec(this.className)[1];
    } catch (e) {
        return null;
    }
}).get();

演示:

jup或您可以使用replace('extra_','')不是避免异常所需的筛选器吗?jup或您可以使用replace('extra_','')不是避免异常所需的筛选器吗?我认为这不是问题所在。该属性以选择器开头,不检查每个单独的类名,它检查整个类属性字符串
“some_class extra_4 some_class 2”
;这种方法只适用于
我不认为这是问题所在。属性以选择器开头,它不检查每个单独的类名,而是检查整个类属性字符串
“some_class extra_4 some_class 2”
;此方法仅适用于我使用的/\s*extra\ud(\d+)\s*/.exec(this.className)[1];很好,谢谢you@mgalesic不客气!正则表达式的另一个变体是将
\s*
更改为
\b
,如下所示:
/\bextra\ud(\d+)\b/
。它也会起作用。我使用了/\s*extra_uz(\d+)\s*/.exec(this.className)[1];很好,谢谢you@mgalesic不客气!正则表达式的另一个变体是将
\s*
更改为
\b
,如下所示:
/\bextra\ud(\d+)\b/
。它也会起作用。