2017-05-29 55 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); 
 

 
    } 
 
});