jQuery - 将多个。(val)拉成一个字符串的最简单方法

时间:2010-09-02 18:41:39

标签: jquery jquery-selectors

给定未知数量的动态生成的文本输入:

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

我需要生成一个逗号分隔的组合输入值字符串。 jQuery是否为我提供了一步到位的解决方案,还是需要迭代并手动构造字符串? (如果手动......看起来怎么样?)

THX

1 个答案:

答案 0 :(得分:24)

您可以使用.map(),如下所示:

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

这使用attribute-starts-with selector查找输入,然后使用.map()将值放入数组中,您可以.join()为单个字符串。

如果他们在一个容器中,比如<div id="Emails">你可以将选择器缩小到像$("#Emails input")这样的东西,我不能肯定地说没有看到你的标记,但是任何带有容器的东西选择器将提高效率。