【问题标题】:Comma separated list in jQueryjQuery中的逗号分隔列表
【发布时间】: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 可以做到这一点,或者一个函数。

【问题讨论】:

    标签: jquery html serialization checkbox


    【解决方案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。它为您提供了非常简化的代码,准确地说明了您正在做什么。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-03
        • 2012-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多