• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

我正在做一个琐事游戏使用jquery/Ajax,但答案出现在错误的位置

JavaScript 3次浏览

我将尽力描述这一点,因为我可以做出Ajax响应,它加载正常,但问题是所有每个问题的答案/选择出现在错误的问题上。我正在做一个琐事游戏使用jquery/Ajax,但答案出现在错误的位置

确实有道理吗?我会提供代码 我应该在ajax请求中定位答案还是使另一个函数匹配正确的问题和答案?


===========解决方案如下:

有这何处去错了几个地方。首先,有一个额外的循环,没有理由在那里。

$.getJSON("json_data.json", function(obj) { 
    $.each(obj, function(key, value) { 
     $("div").append("<li>" + value.title + "</li><br/>"); 
     $("div").append("<ul>" + value.choices + "</ul><br/>"); 
    }); 
    }); 

其次,用你的代码。 jquery将标题和选择添加到页面上的所有div,这是我们不想要的。相反,创建一个id一个div让jQuery将只追加到特定的div

$.getJSON("json_data.json", function(obj) { 
    $.each(obj, function(key, value) { 
     $("#specificDiv").append("<li>" + value.title + "</li><br/>"); 
     $("#specificDiv").append("<ul>" + value.choices + "</ul><br/>"); 
    }); 
    }); 

第三,从不附加元素到DOM中循环。这是一个非常糟糕的做法,因为DOM的操作很慢且性能密集。相反,将所有你想要的html保存在一个变量中,并在最后追加一次。

var html = ''; 
$.getJSON("json_data.json", function(obj) { 
    $.each(obj, function(key, value) { 
     html += "<li>" + value.title + "</li><br/>"; 
     html += "<ul>" + value.choices + "</ul><br/>"; 
    }); 
    $("#specificDiv").append(html); 
}); 

最后,为不同的元素使用正确的标签。你已经使用li标签作为标题,并使用li而不包含ul或ol。而是使用跨度。使用正确的标签有助于浏览器更快地构建DOM树


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)