2013-02-10 52 views
1

我有一個垂直按鈕組(bootstrap),我需要一個函數來查找哪些按鈕處於活動狀態(具有活動類)並創建一個包含活動按鈕的i類的數組。按鈕組看起來像這樣: -如何找到我使用jquery的活動按鈕類?

<div class="btn-group-vertical" data-toggle="buttons-checkbox"> 
    <button type="button" class="btn customwidth"><i class="icon-rss"></i> news</button> 
    <button type="button" class="btn customwidth active"><i class="icon-bullhorn"></i> opinion</button> 
    <button type="button" class="btn customwidth active"><i class="icon-lightbulb"></i> research</button> 
    <button type="button" class="btn customwidth"><i class="icon-signal"></i> stats</button> 
    <button type="button" class="btn customwidth active"><i class="icon-info-sign"></i> how to...</button> 
    <button type="button" class="btn customwidth"><i class="icon-desktop"></i> platform/app</button> 
    <button type="button" class="btn customwidth"><i class="icon-cloud"></i> tool</button> 
    <button type="button" class="btn customwidth"><i class="icon-minus-sign"></i> uncategorised</button>  
</div> 

此功能將通過單擊任何按鈕觸發。

任何想法,我會做這個請。

感謝

喬納森

回答

2
var arr = []; 
$('button.active').each(function(){ arr.push($('i', this)[0].className) }); 

var arr = $('button.active i').map(function() { return this.className }).get(); 
+0

這太好了,對此抱歉,但我怎麼能改變這個,以便它通過組中的所有按鈕循環,並使用諸如arrayofallselectedbuttons()的函數創建數組,例如 – 2013-02-10 15:27:55

+0

我不確定我是否會收到您的問題。我的答案遍歷所有'.active'按鈕。所有'.active'按鈕的數組只是'$('button.active')'。你想要什麼不同? – 2013-02-10 15:29:39

+0

對不起 - 我是個白癡!謝謝,它似乎沒有得到第一次點擊按鈕,但我現在已經明白了 - 非常感謝! – 2013-02-10 15:36:13

0

試試這個:

$(function(){ 
    var array = []; 
    $('.btn-group-vertical').find('button.active > i').map(function(){ 
     array.push(this.className); 
    }); 
}); 

Demo

+0

它的工作原理是它不會將當前按鈕的i類添加到數組,任何想法?也許是因爲活動類是在點擊功能完成後添加的? – 2013-02-10 15:51:46

+0

http://monkeygetnews.jonathanlyon.com/indextest.php當你點擊一個按鈕http://monkeygetnews.jonathanlyon.com/indextest.php時,問題也很明顯 – 2013-02-10 15:56:28

0
function dystroysFunction() 
{ 
    return $('button.active i').map(function() { return this.className }).get(); 
} 

setTimeout(function(){dystroysFunction()},1000); 

我使用的是dystroy的代碼(很明顯他的+1)和setTimeout結合起來可以幫助你。

相關問題