Javascript For循环成功,ajax调用不起作用

Javascript For循环成功,ajax调用不起作用,javascript,html,json,ajax,for-loop,Javascript,Html,Json,Ajax,For Loop,在ajax调用中,我在成功时收到一个json数组。 在ajax成功函数中,我想用HTML显示这个数组。 我可以一次显示整个数组,但我想循环 数组的长度,并逐个显示元素。 请参阅下面的代码 $.ajax({ type: "POST", : "json", url: "response.php", data: data, success: function(data) { $(".airports").html( "<button t

在ajax调用中,我在成功时收到一个json数组。 在ajax成功函数中,我想用HTML显示这个数组。 我可以一次显示整个数组,但我想循环 数组的长度,并逐个显示元素。 请参阅下面的代码

$.ajax({
   type: "POST",
   : "json",
   url: "response.php",
   data: data,
   success: function(data) {
      $(".airports").html(
         "<button type='button' class='btn btn-info btn-block' data-toggle='collapse' data-target='#ap'>Airports</button>" +
         "<div id='ap' class='collapse'>" +
         "<b>Departure airports</b><br>" + data["deptAirports"].length + "<br>" +
         for (i = 0; i < data["deptAirports"].length; i++){
               data["deptAirports"][i] + "<br>" +
         }
         "<b>Destination airports</b><br>" + data["destAirports"] +
         "</div>"
      )
$.ajax({
类型:“POST”,
:“json”,
url:“response.php”,
数据:数据,
成功:功能(数据){
$(“.airports”).html(
“机场”+
"" +
“出发机场”
“+数据[“出发机场”]。长度+”
“+ 对于(i=0;i”+ } “目的地机场”
“+数据[“目的地机场”]+ "" )
destAirports数组只是在HTML中抛出,这是可行的。然而,上面的for循环破坏了所有内容,它无法工作


我缺少什么?

不能将字符串与循环连接起来……请将代码更改为:

$.ajax({
type: "POST",
url: "response.php",
data: data,
success: function(data) {
    var html = "<button type='button' class='btn btn-info btn-block' data-toggle='collapse' data-target='#ap'>Airports</button>" +
     "<div id='ap' class='collapse'>" + "<b>Departure airports</b><br>" + data["deptAirports"].length + "<br>";

     for (i = 0; i < data["deptAirports"].length; i++){
           html += data["deptAirports"][i] + "<br>";
     }

     html += "<b>Destination airports</b><br>" + data["destAirports"] + "</div>";

     $(".airports").html(html);
$.ajax({
类型:“POST”,
url:“response.php”,
数据:数据,
成功:功能(数据){
var html=“机场”+
“+”离港机场
“+数据[“deptAirports”]。长度+”
“; 对于(i=0;i”; } html++=“目的地机场
”+数据[“目的地机场”]+”; $(“.airports”).html(html);
您的语法(和形式)不正确。for循环不能仅放置在字符串串联中。for循环不会生成内联文本值。相反,您需要从数组生成内联文本值的内容。一个选项是使用
数组。join()
。以下是可以在JavaScript控制台中运行的示例:

var someArray = [];
someArray.push('Value 1');
someArray.push('Value 2');
someArray.push('Value 3');
var myText = "<span>" + someArray.join("<br />") + "</span>";
console.debug(myText);
var someArray=[];
push('Value 1');
push('Value 2');
push('Value 3');
var myText=”“+someArray.join(“
”+”); 调试(myText);
输出:

<span>Value 1<br />Value 2<br />Value 3</span>
值1
值2
值3
将其放入OP的代码中,我们发现如下内容:

$.ajax({
   type: "POST",
   : "json",
   url: "response.php",
   data: data,
   success: function(data) {
      $(".airports").html(
         "<button type='button' class='btn btn-info btn-block' data-toggle='collapse' data-target='#ap'>Airports</button>" +
         "<div id='ap' class='collapse'>" +
         "<b>Departure airports</b><br>" +
         data["deptAirports"].length + "<br>" +
         data["deptAirports"].join("<br />") + "<br>" +
         "<b>Destination airports</b><br>" + data["destAirports"] +
         "</div>");
   }
});
$.ajax({
类型:“POST”,
:“json”,
url:“response.php”,
数据:数据,
成功:功能(数据){
$(“.airports”).html(
“机场”+
"" +
“出发机场
”+ 数据[“deptAirports”]。长度+“
”+ 数据[“deptAirports”]。加入(“
”)+“
”+ “目的地机场”
“+数据[“目的地机场”]+ ""); } });
试试这个

$.ajax({
    type: "POST",
    dataType : "json",
    url: "response.php",
    data: data,
    success: function(data) {

        var markup = "<button type='button' class='btn btn-info btn-block' data-toggle='collapse' data-target='#ap'>Airports</button>";
        markup    += "<div id='ap' class='collapse'>";
        markup    += "<b>Departure airports</b><br>";
        markup    += data["deptAirports"].length + "<br>";

        $.each( data["deptAirports"] , function(index,value){
            markup +=  value + "<br>";
        });

        markup    += "<b>Destination airports</b><br>" + data["destAirports"] + "</div>";



        $(".airports").html(markup);

    }

});
$.ajax({
类型:“POST”,
数据类型:“json”,
url:“response.php”,
数据:数据,
成功:功能(数据){
var markup=“机场”;
标记+=“”;
标记+=“出发机场
”; 标记+=数据[“deptAirports”]。长度+“
”; $.each(数据[“deptAirports”]、函数(索引、值){ 标记+=值+“
”; }); 标记+=“目的地机场
”+数据[“目的地机场”]+”; $(“.airports”).html(标记); } });
您不能使用
+
添加for循环,这不是javascript模板语言当我删除for循环前面最后一行后面的+并将其放置在for循环中时,它仍然不起作用。我的意思是,for循环不是表达式,您不能将它们嵌入到那样的字符串中,您需要做的是构建一个字符串var可以在for循环中创建并附加到它,然后在结束调用
data.deptAirports.join(
中,所以我在$(“.airports”).html()之外构建了stringVar,但是我如何做到这一点,你能给出一个简单的例子吗?请查看
data.deptAirports.join(
谢谢,这回答了我的问题!