0

我分别有一组问题和子问题。每个问题和子问题都有一个代码。
清单是问题。子清单 是子问题。例子 :-

代码 问题
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 = '&nbsp;'+'&nbsp;'+'&nbsp;'
                            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 。

请分享您的想法来解决这个问题。

谢谢 ..

4

2 回答 2

0

我认为您应该将 JSON 字符串格式化或构造为Arrays.

所以你有一系列问题(主要问题),并且对于数组中的每个项目,它都有它的子问题数组作为数组(再次)。

如何实现它取决于您的编程语言,并在 JavaScript 中解析 JSON,我相信您会在这里找到很多帮助

于 2013-03-25T14:47:06.320 回答
0

您可以将其放置在单击复选框时调用的函数中。

$(this).closest("tr")

代替

$("#all_checklists").append(data);

我还使用 $(this).closest("tr").find(".classname") 来查找相对于单击内容的重复位置。

于 2013-03-25T14:50:12.237 回答