从公共类名获取集合类名

时间:2015-12-24 13:19:14

标签: javascript jquery html classname

我希望收集数组包含' info',' 321'并且'危险'在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>

请帮帮我。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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);
  }

});

答案 2 :(得分: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/