Список разделенных запятыми в jQuery

Я пытаюсь создать список, разделенный запятыми, из того, что отмечено в форме.

var $StateIDs = $(':checked'); var StateIDs = ''; for (i=0, j = $StateIDs.length; i < j; i++) { StateIDs += $StateIDs[i].val(); if (i == j) break; StateIDs += ','; } 

Вероятно, есть 1-лайнер, который может сделать это, или одну функцию.

Solutions Collecting From Web of "Список разделенных запятыми в jQuery"

map () будет вашим другом здесь.

 var StateIDs = $(':checked').map(function() { return this.value; }).get().join(','); 

StateIDs будут разделены запятыми.


Шаг за шагом – Что происходит?

 $(':checked') // Returns jQuery array-like object of all checked inputs in the document // Output: [DOMElement, DOMElement] $(':checked').map(fn); // Transforms each DOMElement based on the mapping function provided above // Output: ["CA", "VA"] (still a jQuery array-like object) $(':checked').map(fn).get(); // Retrieve the native Array object from within the jQuery object // Output: ["CA", "VA"] $(':checked').map(fn).get().join(','); // .join() will concactenate each string in the array using ',' // Output: "CA,VA" 
 var ids = ''; $(':checked').each(function(){ ids += $(this).val() + ','; }); 

Написание слепых, поэтому я не тестировал.

 $.each([52, 97], function(index, value) { alert(index + ': ' + value); }); 

Проверьте второй ответ здесь . Это дает вам упрощенный код для того, что вы делаете.