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

jus*_*eve 8 jquery jquery-selectors

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

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

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

谢谢

Nic*_*ver 24

你可以.map()像这样使用:

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

这使用attribute-starts-with选择器来查找输入,然后.map()将值放入一个数组中,您可以将其.join()转换为单个字符串.

如果他们在一个容器中,比如<div id="Emails">你可以将选择器缩小到类似的东西$("#Emails input"),我不能肯定地说没有看到你的标记,但任何带有容器选择器的东西都会使它更有效率.

  • +1 48秒更快;)一个类也可以添加到元素... (2认同)