2017-05-29 14 views
0

ulとliを使用してAPIからメニューを表示したいのですが、liにajax応答が追加されていません。親切に私を助けてください。ここで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.log(レスポンス) 'からレスポンスを追加できますか? –

答えて

1

この

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

これはうまく動作します。 –

0

HTML試してみてください。私はあなたのAJAX呼び出しが(その上でより多くの情報を配列することができ返却されていると

<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タグに入れて、繰り返します。 –

+0

この場合、 'title.Name'はすべての' each'に同じ名前を表示しませんか? –

0

:スクリプト

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

を歓迎される)。ここで

は、応答項目を反復処理し、それぞれの新しい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>');

これはliappendうと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); 
 

 
    } 
 
});

関連する問題