我分别有一组问题和子问题。每个问题和子问题都有一个代码 核对清单是个问题。 子检查表是子问题。示例: -
代码问题
4.1 问题1
4.1.1 子问题1
5.1 问题2
5.1.1 子问题1
5.1.2 子问题2
每个问题旁边都有复选框。当我点击它们时,应显示子问题。
我的问题在于:所有问题的子问题都会在第一个问题下显示出来。
这是我的代码:
var json = $.parseJSON(master_checklists);
var count_checklists = Object.keys(json).length;
//console.log("No of checklists:"+count_checklists);
var flag;
var data1='';
$(json).each(function(i,val_masterChecklist)
{
data = ++count + ') ' ;
data += val_masterChecklist['code'] + ' '
data += val_masterChecklist['checklist'] + ' '
db.transaction(function (tx)
{
tx.executeSql('SELECT flag FROM checklists WHERE code ="'+val_masterChecklist['code']+'"', [], function (tx, results)
{
flag = results.rows.item(0).flag;
if(flag == 0)
{
data = '<input type="checkbox" onclick="all_toggle_flag('+val_masterChecklist['code']+',1)">'+'<br>';
$("#all_checklists").append(data);
}
else if (flag == 1 || flag == 2)
{
data = '<input type="checkbox" onclick="all_toggle_flag('+val_masterChecklist['code']+',0)" checked>'+'<br>';
$("#all_checklists").append(data);
var checklistcode = chcode_from_schcode(val_masterChecklist['schcode'])
if(val_masterChecklist['code']==checklistcode)
{
data1 = ' '+' '+' '
data1 += ++count_subchecklist + ') ' ;
data1 += val_masterChecklist['subchecklist'];
fetch_input_type(val_masterChecklist['data_type'],val_masterChecklist['schcode'],val_masterChecklist['code']);
}
$("#all_subchecklists").append(data1);
}
});
});
data += '<div id = "all_subchecklists"></div>'+'<br>'+'<br>';
$("#all_checklists").append(data);
});
问题和子问题来自json。
分享你的想法来解决这个问题。
谢谢..
答案 0 :(得分:0)
我认为您应该将JSON字符串格式化或构造为Arrays
。
所以你有一系列问题(主要问题),对于数组中的每个项目,它都有数组的子问题作为数组(再次)。
如何实现它依赖于您的编程语言,并在JavaScript中解析JSON我相信你会在这里找到很多帮助
答案 1 :(得分:0)
您可以在单击复选框时调用的函数中使用它。
$(this).closest("tr")
而不是
$("#all_checklists").append(data);
我还使用$(this).closest(“tr”)。find(“。classname”)来查找相对于点击内容的重复位置。