2015-10-20 27 views
0

我想要採集對象的集合(複選框,在我的情況下),並從他們那裏採摘css類。從對象集合中拉出css值

到目前爲止,我能得到這樣 $對象的集合( ':檢查')

如果我打電話

$(':checked').first().attr('class')

返回類似

"my-class" 

我想做這個對象的集合,但當我嘗試這樣的事情時,我所得到的是一個空數組。

var classes = $(':checked').map(function(obj) { 
    $(obj).attr('class') 
}) 
+0

您應該'return'? –

+0

'return $(this).attr('class')' –

+0

什麼是'checked'? – Tushar

回答

1

您需要返回map()回調函數內的價值和使用get()toArray()對於GET結果作爲數組。

更新:另外在回調函數中,第一個參數是指索引不是dom對象。所以你需要使用this或第二個參數。

var classes = checked.map(function() { 
    return $(this).attr('class'); 
    //-^-- 
}).get(); 

var classes = $(':checked').map(function(i,obj) { 
    //         --^-- 
    return $(obj).attr('class') 
}).get() 
+0

這仍然返回[]集合 –

+0

是的,「這」是問題。謝謝,我的朋友。 –

+0

@RyanAsensio:很高興幫助 –

0

請如下圖所示在click處理一些變化:

我創建了一個示例代碼段爲您服務。

$(document).ready(function(){ 
 
    $(".btn").click(function(){ 
 
     var checked = $(":checked"); 
 
     var classes = checked.map(function(obj) { 
 
     return $(this).attr('class'); // refers to each checked element 
 
     }).get(); // returns an array of the above map 
 

 
    console.log(classes); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<input class="class1" type="checkbox"/> 
 

 
<input class="class2" type="checkbox"/> 
 

 
<input class="btn" type="button" value="getchecked"/>