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

发布于 2024-09-16 17:51:09 字数 306 浏览 2 评论 0 原文

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

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

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

thx

Given an unknown number of dynamically produced text inputs:

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

I need to produce a comma delimited string of the combined input values. Does jQuery give me a one-step solution or will i need to iterate and manually construct the string? (if if manually...how's that look?)

thx

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

伏妖词 2024-09-23 17:51:09

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

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

这使用 < a href="http://api.jquery.com/attribute-starts-with-selector/" rel="noreferrer">attribute-starts-with 选择器 查找输入,然后 .map() 将值放入数组中,您可以 .join() 转换为单个字符串。

如果它们位于容器中,请说

您可以将选择器缩小为 $("#Emails input"),如果没有看到您的标记,我不能肯定地说,但是任何带有容器选择器的东西都会使其更加高效。

You can use .map(), like this:

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

This uses the attribute-starts-with selector to find the inputs, then .map() to get the values into an array you can .join() into a single string.

If they're in a container, say a <div id="Emails"> you could slim the selector down to something like $("#Emails input"), I can't say for sure without seeing your markup, but anything with a container selector will make it more efficient.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文