Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从json创建一个列表将返回[object],并且只返回最后一个li_Javascript_Jquery_Json - Fatal编程技术网

Javascript 从json创建一个列表将返回[object],并且只返回最后一个li

Javascript 从json创建一个列表将返回[object],并且只返回最后一个li,javascript,jquery,json,Javascript,Jquery,Json,我正在学习如何使用JSON响应。我希望它显示我的所有6个项目。为什么我只得到最后一个项目和它前面的[object] $(文档).ready(函数(){ $(函数(){ $.ajax({ 键入:“GET”, 网址:'https://api.myjson.com/bins/e4ei2', async:false, 数据类型:“json”, 成功:功能(结果){ var项目=”; $.each(结果、函数(索引、val){ 对于(变量i=0;i

我正在学习如何使用JSON响应。我希望它显示我的所有6个项目。为什么我只得到最后一个项目和它前面的
[object]

$(文档).ready(函数(){
$(函数(){
$.ajax({
键入:“GET”,
网址:'https://api.myjson.com/bins/e4ei2',
async:false,
数据类型:“json”,
成功:功能(结果){
var项目=”;
$.each(结果、函数(索引、val){
对于(变量i=0;i”+item.stand+”

“+item.dishName+”

“+item.dishPrice+”

”; } $('ul').html(项目); }); } }); });
});首先,删除
async:false
设置。这是一种非常糟糕的做法,而且您不需要它,因为您正确地使用了回调

然后,您需要循环查看
result.menu
,而不是
result
。您还在循环的每个迭代中重新声明
项。将其设置为对象的
val[i]
。然后,当您尝试将其连接到字符串时,它将被强制为
[object object]
,然后您将在输出中看到它

更好的方法是通过
菜单进行单循环。然后,您可以在创建HTML字符串时直接访问它的属性。您可以使用
map()
实现这一点:

var结果={
“菜单”:[{
“展台”:“布切丽”,
“dishName”:“人造鱼片”,
“价格”:“3,45欧元”
}, {
“展位”:“P–tisserie”,
“dishName”:“Mille feuilles”,
“价格”:“1,10欧元”
}, {
“展位”:“乐泊松酒店”,
“dishName”:“香茅肉片”,
“价格”:“4,60欧元”
}, {
“摊位”:“沙拉吧”,
“dishName”:“潜水员crudités”
}, {
“展台”:“Les Côcottes”,
“dishName”:“Rougail saucisse”,
“价格”:“2,80欧元”
}, {
“摊位”:“小吃”,
“dishName”:“热狗”,
“价格”:“1,89欧元”
}]
};
//在AJAX处理程序中:
var html=result.menu.map(函数(val){
返回“
  • ”+val.stand+”

    “+val.dishName+”

    “+val.dishPrice+”

  • ”; }); $('ul').html(html)
    
    
      $(文档).ready(函数(){
      $.ajax({
      键入:“GET”,
      网址:'https://api.myjson.com/bins/e4ei2', 
      async:false,
      数据类型:“json”,
      成功:功能(结果){
      var项目=”;
      $.each(结果、函数(索引、val){
      对于(var i=0;i”+数据.stand+“

      ”+数据.dishName+”

      “+数据.dishPrice+”

      ”; } $('ul').html(项目); }); } }); });
      
      

      从他的小提琴上看是的。事实上,我编辑了我的小提琴,删除了不必要的代码。谢谢你给出了这个非常完整的答案。我会调查的,没问题。下面是一个更新的小提琴链接,显示它正在工作: