2014-12-08 47 views
0

恰好碰到了这个问题,在得到从类的列表中的特定类值....疗法相同的元素

<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")  
}); 

打印“存有dolor_spec sit amet price1“

如果我只是想要price1,price2,price3被返回?

我已经试过......

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

上面是从另一个StackOverflow上回答我的问题是正则表达式的部分如何将我得到它只匹配“价格*”

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

感谢

解决过b这样做......

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

在你的第一例,即使你得到的只是价格1,price2,元素的列表price3终于'class_name'已经price3只是因为你没有存储它在一个数组中。 – ManirajSS 2014-12-08 05:26:41

+0

@ManirajSS不是你的情况你得到整个班级列表与元素 – 2014-12-08 05:32:38

回答

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.

+0

相关联谢谢它的作品,但我用另一种方式.....将选择你的答案,虽然 – 2014-12-08 05:35:31

+0

@NMFSDF欢迎:)有很多方法可以做到这一点..我提到了其中一个 – Hiral 2014-12-08 05:39:19

0

使用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

+0

你试过我的代码吗? – Balachandran 2014-12-08 05:44:35

+0

你能解释一下这段代码吗? – Hiral 2014-12-08 06:13:31

+0

@手风琴,雅我解释了一些东西。现在看到我的帖子 – Balachandran 2014-12-08 06:20:47