2011-07-11 42 views
1

我目前這樣做:是否有可能改進此Jquery代碼?

var currFilterList = ""; 
$('.prod-filters input[type=checkbox]:checked').each(function() { 
currFilterList += $(this).attr('data-groupid')+','; 
}); 

我想這可能是冷靜地做一些事情,如:

var currFilterList = $(blahblah).each(function() { return += value; } 

我想要做的另一件事是將項目添加到數組JQUERY對象(爲空最初其需要,我試圖合併,但由於其不JQUERY對象的數組是不行的,有沒有辦法做到這一點?

var myArrayOfJqueryObjects = []; 
foreach(blah) { 
$('.myItem').ADDTO(myArrayOfJqueryObjects); 
} 

非常感謝任何回覆:)!!!

+0

你的第二個問題是不清楚。 – SLaks

回答

3

你可以寫

var arr = $('.prod-filters input:checkbox:checked').map(function() { 
    return $(this).attr('data-groupid'); 
}).get(); 

var str = arr.join(','); 
+1

+1有時忘記'map()'。 – alex

+0

感謝多數民衆贊成我正在尋找,一直在尋找這樣的解決方案很長一段時間,所以再次感謝:)! – Baconbeastnz

+0

啊好ol'map()'功能:) +1 – AlienWebguy

0

這可以被視爲改良...

var currFilterList = []; 
$('.prod-filters input:checkbox:checked').each(function() { 
    currFilterList.push($(this).data('group-id')); 
}); 

currFilterList = currFilterList.join(','); 

儘管代碼會產生不同的輸出,我以爲你不想尾,

1

不知道這會工作,但值得一試:

var currFilterList = $('.prod-filters input[type=checkbox]:checked').map($(this).attr('data-groupid')).join(','); 
+0

感謝您的回覆:)! – Baconbeastnz