Javascript 通过jquery获取选中和未选中的表数据

Javascript 通过jquery获取选中和未选中的表数据,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我在运行时使用Jquery创建一个表,并将唯一id绑定到复选框 $.getJSON('/api/Test/SelectionList' + '/' + ID) .done(function (data) { $.each(data, function (key, val) { var myRow = $("<tr/>"); //$("<td> <input type='check

我在运行时使用Jquery创建一个表,并将唯一id绑定到复选框

  $.getJSON('/api/Test/SelectionList' + '/' + ID)
   .done(function (data) {          
       $.each(data, function (key, val) {
           var myRow = $("<tr/>");
           //$("<td> <input type='checkbox' ></input>   </td>").text(val.IsActive).appendTo($(myRow));
           var items = "";
           items += '<input type="checkbox" id=' + val.FacilityID + ' ';             
           if (val.IsSelected) {
               items += 'checked/>';
           }
           else {
               items += '/>';
           }
           //$("<td/>").text(val.IsActive).appendTo($(myRow));
           $("<td> " + items + "</td>").appendTo($(myRow));
           $("<td/>").text(val.Facilityname).appendTo($(myRow));
           $("<td/>").text(val.RegionName).appendTo($(myRow));
           $("<td/>").appendTo($(myRow));
           myRow.appendTo($("#Table"));
       });

   })
$.getJSON('/api/Test/SelectionList'+'/'+ID)
.done(函数(数据){
$。每个(数据、函数(键、值){
var myRow=$(“”);
//$(“”).文本(val.IsActive).appendTo($(myRow));
var项目=”;
项目+='';
}
否则{
项目+='/>';
}
//$(“”).文本(val.IsActive).appendTo($(myRow));
$(“”+项目+“”)。附加到($(myRow));
$(“”).文本(val.Facilityname).appendTo($(myRow));
$(“”).文本(val.RegionName).appendTo($(myRow));
$(“”)。附加到($(myRow));
myRow.appendTo($(“#表”);
});
})
用户可以选中和取消选中复选框X,单击“保存”,我想用ID存储(表)所有处于选中/未选中状态的复选框X的值。 我想循环遍历整个表,并将数据存储为id@1对于复选框和id@0对于同一数组中的未选中框。 我对jquery有点陌生,所以不了解语法。请建议。

您可以尝试以下方法: 将id推入两个不同的数组

$(document).ready(function() {

    // bind click event to save-btn 
    $('#save-btn').on('click', function() {

        // init two array 
        // (if you want to use var out of on's callback function, you need to do declaration outside)    
        var checkedList = [],
            uncheckedList = [];

        // push ckecked id into checkedList
        $('input:checked').each(function() {
            checkedList.push($(this).attr('id'));
        });

        // push unckecked id into uncheckedList
        $('input').not(':checked').each(function() {
            uncheckedList.push($(this).attr('id'));
        });
    });
});

更新了,这是小提琴


一
二
$(“#保存btn”)。在('click',function()上{
变量输出=[]
$(“表td输入[type=checkbox]”)。每个(函数(){
id=$(this.attr(“id”);
output.push(id+“@”+($(this).is(“:checked”)?“1”:“0”))
})
log(JSON.stringify(output));
})

未选中的项目不起作用。这给了我语法错误。实际上,我想循环遍历整个表,并将数据存储为id@1对于复选框和id@0对于未选中框。我编辑了答案。不(“:checked”)需要单个引号。能否显示此JavaScript生成的呈现HTML?对于HTML,显示您期望的精确输出。你好,托马斯,我的问题现在用Suren ans解决了。非常感谢。再多一点帮助。现在数据以这种形式出现。{“10020”:false,“10021”:true,“10022”:true,“10023”:false,“10024”:false}我需要这种形式的输出id@1为了真实和id@0谢谢你,谢谢。我试过这个。但您的代码行数较少。我把它弄大了。谢谢$(“#locationTable td input[type=checkbox]”).each(函数(){id=$(this.attr(“id”);console.log(id);var eleIsselected=$(this.is(':checked')===真?1:0;output.push(id+“@”+eleIsselected);)@小牛:如果你觉得答案有用,别忘了接受答案。
<table>
   <tr>
    <td>one</td>
    <td>
    <input type="checkbox" id='1'  checked/></td> 
   </tr>
   <tr>
    <td>two</td>
    <td>
    <input type="checkbox" id='2' /></td>
   </tr>
</table>

$('#save-btn').on('click', function() {
    var output = []
 $("table td input[type=checkbox]").each(function(){
   id = $(this).attr("id");
   output.push( id + "@" + ($(this).is(":checked") ? "1" : "0"))
  })
  console.log(JSON.stringify(output));
})