Разделенный запятыми список в jQuery - PullRequest
19 голосов
/ 26 апреля 2011

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

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

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

Ответы [ 4 ]

60 голосов
/ 26 апреля 2011

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

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

StateID будет строкой через запятую.


Шаг за шагом - что происходит?

$(':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"
3 голосов
/ 26 апреля 2011
var ids = '';
$(':checked').each(function(){
    ids += $(this).val() + ',';
});

Пишу вслепую, поэтому я не проверял.

2 голосов
/ 26 апреля 2011
$.each([52, 97], function(index, value) { 
  alert(index + ': ' + value); 
});
1 голос
/ 26 апреля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...