2017-05-29 56 views
0

我想使用ul和li显示来自API的菜单,但ajax响应不会附加在li中。请帮助我。Json API响应没有在li属性中追加

这里是我的HTML

@{ 
    ViewData["Title"] = "Home Page"; 
} 
<script src="~/lib/jquery/dist/jquery.min.js"></script> 
<div id="demo"> 
    <ul><li id="results"></li></ul> 
</div> 

这里是我的脚本。

<script> 
    $.ajax({ 
     url: "http://any-url", 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     type: "POST", 
     data: JSON.stringify({ "ProjectId": "1" }), 
     success: function (response) { 
      var title = +response.ParentList; 
      console.log(response); 
      $.each(response, function() { 

       $("#results").append(title.Name); 
      }) 

     }, 
     error: function (status) 
     { 
      console.log(status.statusText); 

     } 
    }); 
</script> 

而这是我的控制台窗口中的Ajax响应。

Object {Message: "Successfully", Status: "OK", Parentlist: Array(10)} 
Message:"Successfully" 
Parentlist:Array(10) 
0:Object 
1:Object 

Parentlist:Array(10) 
0:Object 
    Child:Array(0) 
    DisplayOrder:"-8" 
    Id:"1012" 
    Name:"Mysorie Chif 
+0

你怎么在控制台中看到的名义价值? – guradio

+0

为什么在'var title = + response.ParentList;'中使用'= +''' –

+0

您可以在console中添加来自'console.log(response)'的响应' –

回答

1

试试这个

success: function (response) { 
     $.each(response.ParentList, function() { 
      $("#demo ul").append('<li>'+this.Name+'</li>'); 
     }) 
    }, 
+0

感谢这工作正常。 –

0

HTML:

@{ 
    ViewData["Title"] = "Home Page"; 
} 
<script src="~/lib/jquery/dist/jquery.min.js"></script> 
<div id="demo"> 
    <ul><li class="results"></li></ul> 
</div> 

脚本:

<script> 
    $.ajax({ 
     url: "http://any-url", 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     type: "POST", 
     data: JSON.stringify({ "ProjectId": "1" }), 
     success: function (response) { 
      var title = +response.ParentList; 
      console.log(response); 
      $.each(response, function() { 

       $("#demo ul").append(title.Name); 
      }) 

     }, 
     error: function (status) 
     { 
      console.log(status.statusText); 

     } 
    }); 
</script> 
+0

你改变了什么?包含一些关于您提供的答案的文字总是一个好主意 –

+0

$(“#demo ul”)。append(title.Name);您将代码添加到li标签中。但我们希望它在ul标签中并重复li。 –

+0

在这种情况下'title.Name'在每个'each'中不会显示相同的名称? –

0

我想,你的Ajax调用返回一个数组(对可能的更多信息受到欢迎)。

这里是如何反覆响应项目,并追加了新的LI每个:

function onSuccess(response){ 
    $.each(response, function (index, item) { 
    $("#resultRoot").append('<li>'+item.Name+'</li>'); 
    }) 
} 

对于工作,你需要指向UL标签(不是LI):

<div id="demo"> 
    <ul id="resultRoot"></ul> 
</div> 

我离开阿贾克斯原样,只是调用的onSuccess功能:

$.ajax({ 
    url: "http://any-url", 
    dataType: "json", 
    contentType: "application/json; charset=utf-8", 
    type: "POST", 
    data: JSON.stringify({ "ProjectId": "1" }), 
    success: onSuccess, 
    error: function (status) 
    { 
     console.log(status.statusText); 
    } 
}); 
0

我会用这条线$("#demo ul").append('<li>' + this.ParentList.Name + '</li>');

这将append一个li和使用this.ParentList.name你应该得到当前response

$.ajax({ 
 
    url: "http://any-url", 
 
    dataType: "json", 
 
    contentType: "application/json; charset=utf-8", 
 
    type: "POST", 
 
    data: JSON.stringify({ 
 
    "ProjectId": "1" 
 
    }), 
 
    success: function(response) { 
 
    console.log(response); 
 
    $.each(response, function() { 
 

 
     $("#demo ul").append('<li>' + this.ParentList.Name + '</li>'); 
 
    }) 
 

 
    }, 
 
    error: function(status) { 
 
    console.log(status.statusText); 
 

 
    } 
 
});