jQuery中的逗号分隔列表

Posted

技术标签:

【中文标题】jQuery中的逗号分隔列表【英文标题】:Comma separated list in jQuery 【发布时间】:2011-08-13 06:36:54 【问题描述】:

我正在尝试根据表单上检查的内容创建一个逗号分隔的列表。

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

可能有一个 1-liner 可以做到这一点,或者一个函数。

【问题讨论】:

【参考方案1】:

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"

【讨论】:

约翰,我还有一个问题:这个人是谁?答:你是! 您太客气了,祝您周二愉快! 这个答案应该是回答所有 SO 问题的模型。感谢您的努力,非常感谢。【参考方案2】:
var ids = '';
$(':checked').each(function()
    ids += $(this).val() + ',';
);

瞎写,所以没测试过。

【讨论】:

蒂姆,等我能从你手里抢走鹅卵石,我就该离开了。【参考方案3】:
$.each([52, 97], function(index, value)  
  alert(index + ': ' + value); 
);

【讨论】:

【参考方案4】:

检查second answer here。它为您提供了非常简化的代码,准确地说明了您正在做什么。

【讨论】:

以上是关于jQuery中的逗号分隔列表的主要内容,如果未能解决你的问题,请参考以下文章

如何从 JQuery 中的逗号分隔值列表中绑定 <select>?

用 jQuery 逗号分隔的错误列表

数组中的逗号分隔列表

从 C# 中的列表创建逗号分隔列表而不终止逗号

如何从 SQL CE 中的表中构建逗号分隔列表?

将用逗号/空格分隔的名称插入到通过 jQuery 创建的 <li> 中