2017-06-12 53 views
0

我有過濾器,在點擊時切換活動類。點擊時,我還想循環訪問具有活動類的鏈接,並從這些鏈接的文本中創建一個新數組。但是當我循環播放時,控制檯中沒有任何東西。 這是代碼:從所有具有相同類別的鏈接中獲取文本

$('.filter-button').click(function() { 

    $(this).toggleClass('active'); 

    var activeTags = $('filter-button.active'); 

    $(activeTags).each(function() { 
    var tags[] = $(this.text()); 
    }); 

    console.log(tags); 
}); 

我在做什麼錯?

+0

變種加入ActiveTag = $( 'filter-button.active');如果過濾按鈕是類,則缺少一個點。 – tech2017

+0

您忘記了選擇器上的點:'filter-button.active'。另外activeTags已經是一個jquery對象,所以你不需要執行'$(activeTags)',你只需要執行'activeTags.each',最後,你將重置var中的標籤,並且它是該循環的本地對象所以當你嘗試登錄它時不會存在 – Pete

+0

[請不要將標記置於問題標題中](https://stackoverflow.com/help/tagging) – Liam

回答

1

對於每個元素,您正在爲each()函數創建一個新的tags變量。當函數退出時會丟棄它。

您的外部console.log()正試圖列出不存在的東西的值(因爲我們不在each()函數內)。

each()的創建,並追加到,陣列

$('.filter-button').click(function() { 
 

 
    $(this).toggleClass('active'); 
 

 
    var activeTags = $('.filter-button.active'); 
 
    var tags = []; 
 

 
    $(activeTags).each(function() { 
 
    tags.push($(this).text()); 
 
    }); 
 

 
    console.log(tags); 
 
});
.active { 
 
    background-color: red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button class=filter-button>1</button> 
 
<button class=filter-button>2</button> 
 
<button class=filter-button>3</button> 
 
<button class=filter-button>4</button> 
 
<button class=filter-button>5</button>

+0

非常感謝您的幫助! – Leff

相關問題