从同一元素的类列表中获取特定的类值

时间:2014-12-08 05:21:06

标签: jquery regex

刚遇到这个问题......

<div class="ipsum dolor_spec sit amet price1">Hello World!</div>
<div class="ipsum dolor_spec sit amet price2">Hello World!</div>
<div class="ipsum dolor_spec sit amet price3">Hello World!</div>

我到现在为止的代码是

$("div[class*='price']").each(function(){
    var class_name= $(this).attr("class")    
});

打印&#34; ipsum dolor_spec坐在价格1&#34;

我只想要price1,price2,price3返回?

我试过......

var classList =$(this).attr('class').split(/\s+/);
$.each( classList, function(index, item){
    if (item === 'price*') {
       //do something
    }
});

以上是来自另一个stackoverflow的答案我的问题是正则表达式部分我怎么才能让它只匹配&#34;价格*&#34;

任何帮助表示赞赏....

感谢

解决了这个问题......

var classList =$(this).attr('class').split(/\s+/);
                            $.each( classList, function(index, item){
                                if (item.match(/^price_qty([0-9]+)$/)) {
                                    console.log(item);
                                }
                            });

2 个答案:

答案 0 :(得分:0)

以下是实现这一目标的方法之一:

$("div[class*='price']").each(function(){
    var class_name= $(this).attr("class").split(" "),len = class_name.length, i = 0;    
    for(;i < len; i++){        
        if(class_name[i].indexOf("price") === 0){
            console.log(class_name[i]);
            break;
        }
    }
});

See DEMO here.

答案 1 :(得分:0)

使用 classList 。 classList用于访问元素的类列表

$("div[class*='price']").each(function(i,elem){
   console.log(elem.classList[elem.classList.length-1])  // get all classes into array  and print the last class using  elem.classList.length-1
});

<强> DEMO