2014-11-25 42 views
0

我有兩個列表格式爲:JS/jQuery的 - 擴展瓦爾每() - 函數

<ul id="filters" class="option-set button-group" data-filter-group="kategorie"> 
    <li> 
     <a href="#" data-filter=".corporatedesign">Corporate Design</a> 
    </li> 
    <li> 
     <a href="#" data-filter=".webdesign">Webdesign</a> 
    </li> 
</ul> 

在Javascript中有一個點擊功能,就將此或刪除類「isotopeactive」的鏈接 - 元素:

$('#filters a').click(function(){ 
    var $this = $(this);     
    if ($this.hasClass('isotopeactive')) { 
     $this.removeClass('isotopeactive'); 
    }else{ 
     $this.addClass('isotopeactive'); 
    } 

的問題是讓所有的數據過濾 - 數據來自那些「isotopeactive」到一個變量的所有元素。我第一次嘗試是這樣的,但它不工作..

var filterValue = ''; 
var i = 0; 

$(".isotopeactive").each(function() { 
    filterValue += $this.attr('data-filter'); 
    i++; 
}); 

在我想是這樣的結尾: filterValue =>「.corporatedesign .webdesign」

有什麼建議?謝謝! :)

回答

1

我建議:

var data = $('.isotopeactive').map(function(){ 
      return this.dataset.filter; 
      }).get(); 

對於這些,年紀大了,不實現dataset瀏覽器:

var data = $('.isotopeactive').map(function(){ 
      return this.getAttribute('data-filter'); 
      }).get(); 

或者:

var data = $('.isotopeactive').map(function(){ 
      return $(this).data('filter'); 
      }).get(); 

這將返回一組值爲data變量的值。

參考文獻:

+0

完美的作品。非常感謝你! :) – 2014-11-25 12:44:22

+0

你真的很受歡迎,我很高興得到了幫助! :) – 2014-11-25 12:51:34