在列表中打印大量[object Object]而不是值

时间:2017-02-02 06:56:13

标签: javascript jquery ajax node.js

这是关于jquery的代码。

当我输入一些文字时,唯一的显示是[object Object],但当我console.log(areaname)时,结果还可以。

已经对数据进行字符串化,但结果不正确

$('#arealist').btsListFilter('#searcharea', {

  sourceTmpl: '<a class="list-group-item" href="http://localhost:3000/legone/survey/surveyform/households"><span>' + {
    areaname
  } + '</span></a>',
  sourceData: function(text, callback) {
    var data = {};

    data.areaname = $('#searcharea').val();
    console.log(areaname + "areaname");

    /*$.getJSON("http://localhost:3000/legone/survey/dblookup/listareas", {provcode:province,keyword:keyword},
       function ( jsonData )
       {
          callback(jsonData);
       } );*/
    return $.ajax({
      type: 'POST',
      data: JSON.stringify(data),
      contentType: 'application/json',
      url: 'http://localhost:3000/legone/survey/dblookup/listareas',
      success: function(data) {
        //console.log(data[0].areaname);
        areaname = data.areaname;
        callback(data);
      }
    });

  }
});

2 个答案:

答案 0 :(得分:2)

您获得[object Object]的原因是因为您正在打印对象。

如果areaname不是对象

在您的代码中,您有:

sourceTmpl: '<a class="list-group-item" href="..."><span>' + {
  areaname
} + '</span></a>',

包装变量{areaname}的括号会创建一个正在打印的对象

如果areaname是一个对象(括号是外部库)

您要做的是打印对象示例的单独键:

// example content of areaname object
// areaname = {
//   foo = "obi_1",
//   bar = "kenobi"
// }

// Thus
sourceTmpl: '<a class="list-group-item" href="..."><span>'
  + areaname.foo + ' ' + areaname.bar
  + '</span></a>';

答案 1 :(得分:1)

使用以下代码段:

var jsonObj=JSON.stringify(obj);
console.log("data:"+jsonObj);