如何在循环中将json数据显示为HTML

时间:2016-04-26 11:28:14

标签: javascript jquery html json

我必须在下面的列表中向html页面显示一些json数据是我的jquery代码

var u_Name, u_Mobile, u_lat, u_lang, driver_ID;

function fetchEnquiry(driverid) {
    jQuery.ajax({
        url: baseurl + "fetchenquiry.php",
        data: 'driverid=' + driverid,
        type: "POST",
        success: function (response) {
            response = $.trim(response);
            if (response == "NO Enquiry") {
                console.log(response);
            } else {
                var enquiryDet = jQuery.parseJSON(response);

                jQuery(enquiryDet).each(function (index, element3) {
                    u_Name = element3.name;
                    u_Mobile = element3.mobile;
                    u_lat = element3.location_lat;
                    u_lang = element3.location_lang;
                    driver_ID = element3.driver_id;
                    $.each(enquiryDet, function (i, item) {
                        $('.notifications_show').html(enquiryDet[i].name);
                    });
                });
            }
        },
        error: function () {}
    });
}

HTML CODE

 <div class="notifications_show">

            </div>

它只显示最后一个结果。

请帮助!

4 个答案:

答案 0 :(得分:1)

在这一部分:

$.each(enquiryDet, function (i, item) {
      $('.notifications_show').html(enquiryDet[i].name);
});

您正在替换结果元素的完整html。

您需要使用.append()添加更多值,而不是替换当前值。

像这样:

$.each(enquiryDet, function (i, item) {
      $('.notifications_show').append(enquiryDet[i].name);
});

修改

如评论中所述,您应在$('.notifications_show').empty()之前添加.each,以清除目标div中的当前结果。

答案 1 :(得分:1)

只需使用.append而不是.html:

$.each(enquiryDet, function (i, item) {
      $('.notifications_show').append(enquiryDet[i].name);
});

答案 2 :(得分:1)

改变这个:

$.each(enquiryDet, function (i, item) {
  $('.notifications_show').html(enquiryDet[i].name);
});

到此:

 $('.notifications_show').empty();//flush content before adding new content
  $.each(enquiryDet, function (i, item) {
   $('.notifications_show').append(enquiryDet[i].name);
 });

html替换所选元素的内容,append在所选元素中追加(最后)。

答案 3 :(得分:1)

使用变量并将文本附加到该变量,然后将其附加到.notifications_show div

var text = '';
 $.each(enquiryDet, function (i, item) {
                       text+=enquiryDet[i].name;
                    });
$('.notifications_show').html(text);