jQuery有时会加载所有值但有时会遗漏某些值

时间:2013-08-20 09:23:38

标签: javascript jquery tastypie

Hello Guys我正在使用django-tastypie开发Q& A。

在我的模板中,需要打印与主题相关的所有问题以及与特定问题相关的所有答案,为此我将一个对象传递给jQuery文件并在那里迭代该对象。

这是代码

$(data.quiztopics).each(function(index,element){  
   $(element.questions).each(function(index,question){  
     $(".quiz").append("<table id='question_"+question.id+">"+
                       "<tr><p name='question' id=question_"+question.id+">"+
                          (question.question_text) +
                       "</p></tr><tr id=answer_"+question.id+"></tr>"); 

$(question.answers).each(function(index,answer){
     $("#answer_"+question.id).append("<td>"+
        "<input type='radio' name='answer'id=answer_"+answer.id+">"+ 
            answer.answer_text +
        "</input></td>"); 
});
在console.log中它显示一切正常我,回答与特定问题有关。当我将它附加到表格行时,它会错过一些问题的答案 即

10+10

120 20  30  1
10*10

100 00  20  1
10/10

10-10

请告诉我解决方案如何将所有答案放在相关问题下

2 个答案:

答案 0 :(得分:1)

似乎你没有关闭表标签,每次添加,但从未关闭,可能#$ !!! $。您应该在“每个”之外添加标记,或者每次关闭它。其余代码看起来确定。

作为另一个建议......你应该修改你的数据结构,以便将答案作为问题的一个要素。这将解决您当前的问题,优化您的代码(不需要第二个选择器和dom中的修改),并让您对自己感觉良好:)。

答案 1 :(得分:0)

我已经解决了这个问题。可能是我有一些语法错误或其他东西。我删除了代码并再次编写它,现在它完美运行。
新代码在这里。
$(data.quiztopics)。每个(函数(指数,元素){

                $(element.questions).each(function(index,question){
                    $(".quiz").append("<table class= question_"+question.id+"><tr><td>"+question.question_text+"</td></tr></table>");
                    $(".question_"+question.id).append("<tr class=answer_"+question.id+"></tr>")
                    $(question.answers).each(function(index,answer){
                        if(question.question_type=="NUM"){
                            $(".answer_"+question.id).append("<td><input type=radio name="+question.id+"/> "+answer.answer_text+"</td>");
                        }

                    })

                })

但现在我的下一个问题是这是一个测验,我需要提交它。请告诉我如何循环查看给定的问题和答案,并选择提交测验的特定答案。