我只是想在警报中打印数据但是它一直提醒我[对象对象],但我希望它会显示我的表数据行

时间:2015-01-10 06:44:30

标签: javascript json alert stringify

$.post("Hirarchi/addHirarchi",
    {/*'id':hirarchiId,*/'hirarchiName':hirarchiName,'level':HirarchiLevel},
        function(data) {


            $('#lblMessage').html (data);
            $('#txtHirarchiName').val('');
            $('#txtHirarchiLevel').val('');

                        var data = $.parseJSON(data);

                        $.each(data, function(a,b,c) {


                            alert(data);

                        });

        });

2 个答案:

答案 0 :(得分:0)

不打印数据,而是打印如下内容:

alert(JSON.stringify(data));

看,如果能解决你的问题。

答案 1 :(得分:0)

您无法将对象传递给警报。如果给它提供对象,它将[Object Object]。 alert参数必须是字符串

//for Each loop code
$.each(data, function(index,value,list) { 
  alert(JSON.stringify(value)); //if you want to alert each object then use
  //data will not be accessible inside $.each you can access the same using 3rd parameter which list
  alert(JSON.stringify(list));
});

但这就是为什么你在$ .each中发出警报并提醒相同数据的原因。 我假设它是代码中某些功能的一部分。但这不是一个好的做法。

更新1。

以下是渲染表的答案。

代码

drawTable(data);  /// call this line from your ajax success

function drawTable(data) {
    var tData = data.tblHirarchi
    for (var i = 0; i < tData.length; i++) {
        if (tData[i] != null) {
            drawRow(tData[i])
        }
    }
}

function drawRow(rowData) {
    var row = $("<tr />")
    $("#personDataTable").append(row); //this will append tr element to table... keep its reference for a while since we will add cels into it
    row.append($("<td>" + rowData[0] + "</td>"));
    row.append($("<td>" + rowData[1] + "</td>"));
    row.append($("<td>" + rowData[1] + "</td>"));
}

Fiddle HERE