2015-12-24 3 views
0

Я хочу, чтобы массив массивов с 'info', '321' и 'danger' в jquery/Javascript. У меня есть код HTML.получить имена классов классов из общего имени класса

И для этого мне нужно использовать это имя .etape.

<input class="etape btn-info others"> 
<input class="etape btn-321 "> 
<input class="etape btn-danger others1"> 
<input class="etape others"> 

Мой худший сценарий:

<script> 
$(document).ready(function() { 
    var myClass; 
    var classNames = $('.etape').attr('class').split(/\s+/); 
    $(".cc").each(function(index, item) { 
     if(item.indexOf("btn-") == 0){ 
      myClass[] = item; 
     } 
    }); 
}); 
</script> 

Пожалуйста, помогите мне.

+0

Woul Вы делитесь результатами, которые ожидаете? ... Я имею в виду, что массив выглядит точно? – Mottie

+0

Вы забыли оставить свой javascript-код. –

+0

Опубликовать полный исходный код PLS. –

ответ

1

Вот как получить ["info", "321", "danger"] от посланной разметке

var classes = $('.etape').map(function() { 
    var m = this.className.match(/btn\-(.*?)(?:\s|$)/); 
    return m ? m.pop().split('-').pop() : m; 
}).get().filter(Boolean); 

FIDDLE

0
var collection = []; 
var classRegex = /btn-.*\s/; 
$(".etape").each(function(index,element) { 
    var className = $(element).attr('class').match(classRegex); 
    if(className != null){ 
    var data = className[0].replace("btn-","").trim(); 
    collection.push(data); 
    } 

}); 
0

Использование CSS селекторы Attr:

$('[class*="btn-"]').val('hello'); 
// returns: [<input class=​"etape btn-info others">​, <input class=​"etape btn-321">​, <input class=​"etape btn-danger others1">​] 

демо: https://jsfiddle.net/tianes/dx91guLw/