Javascript 通过jquery获取选中和未选中的表数据
我在运行时使用Jquery创建一个表,并将唯一id绑定到复选框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
$.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));
})