jQuery - самый простой способ вывести несколько. (val) в одну строку - PullRequest
8 голосов
/ 02 сентября 2010

Учитывая неизвестное количество динамически создаваемых текстовых входов:

for (var i = 0; i < numInputs2Render; i++) {
    collectEmails = collectEmails + '<input type="text" id="Email' + i + '" name="Email' + i + '">';
}

Мне нужно создать строку с разделителями-запятыми из комбинированных входных значений.Дает ли jQuery одношаговое решение или мне нужно будет повторить и вручную построить строку?(если вручную ... как это выглядит?)

thx

1 Ответ

24 голосов
/ 02 сентября 2010

Вы можете использовать .map(), например:

var emails = $("input[name^=Email]").map(function() { return this.value; })
                                   .get().join(',');

При этом используется селектор attribute-start-with для поиска входных данных, затем .map() чтобы получить значения в массиве, вы можете .join() в одну строку.

Если они находятся в контейнере, скажите <div id="Emails">Вы можете уменьшить селектор до значения, подобного $("#Emails input"), я не могу сказать наверняка, не увидев вашу разметку, но что-либо с селектором контейнера сделает его более эффективным.

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