如何循环选中复选框并添加到数组

时间:2016-10-27 17:36:13

标签: javascript jquery arrays

我需要遍历特定名称的所有选中复选框,并将该行的值添加到数组中。我的最终数组需要看起来像这样:

stmtData = {
    sections: [
        { sectionCode: "AA", sectionName: "AA Test", amount: "33" },
        { sectionCode: "BB", sectionName: "BB Test", amount: "55" }
    ]
};

循环复选框很容易:

var stmtData = [];
$.each($("input:checkbox[name='sectionElection']:checked"), function () {
    // create sections array here

});

我得到的数据是这样的,但可能有更好的方法吗?

stmtData["sectionCode"] = $(this).val();
stmtData["sectionName"] = $("#sectionElectionLbl_" + $(this).val()).text();
stmtData["amount"] = $("#sectionCost_" + $(this).val()).text();

2 个答案:

答案 0 :(得分:0)

你可以使用map来改进它,而不是每个,在jQuery上有点生锈但有点像?

var stmtData = {}
stmtData.section = $("input:checkbox[name='sectionElection']:checked")
.map(function() {

  var val = $(this).val();
  var text = val.text();
  return {
        sectionCode: val,
        sectionName = $("#sectionElectionLbl_" + text,
        amount: text
    }
});

答案 1 :(得分:0)

好吧,我知道我不得不以某种方式使用推,想通了,这很好用。

var stmtData = [];
$.each($("input:checkbox[name='sectionElection']:checked"), function () {
    // create sections array here
    stmtData.push({
        sectionCode: $(this).val(),
        sectionName: $("#sectionElectionLbl_" + $(this).val()).text(),
        amount: $("#sectionCost_" + $(this).val()).text()
    });
});