2014-12-08 49 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