2016-10-27 2 views
1

Мне нужно перебрать все отмеченные флажки определенного имени и добавить значения этой строки в массив. Мой окончательный массив должен выглядеть следующим образом:Как перебрать отмеченные поля и добавить в массив

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

Looping над флажками легкая часть:

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(); 

ответ

0

Вы можете улучшить его, используя карту вместо каждого, немного ржавую на 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 
    } 
}); 
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() 
    }); 
}); 
Смежные вопросы