通过jquery显示json数据的值

时间:2018-02-15 06:02:28

标签: javascript jquery arrays json

我有Json返回的数据,但不知怎的,我无法打印出来。

这是我的javascript

jQuery( document ).ready( function( $ ) {
    $('select[name="country_id"]').on('change', function() {
      $.ajaxSetup({
          headers: { 'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content') }
      });
       var CountryId = $(this).val();
        if(CountryId) {
            $.ajax({
              url: '{{ url('profilegetStateList') }}/'+encodeURI(CountryId),
              type: "GET",
              dataType: "json",
              success:function(data) {
                console.log(data);
                  // $('select[name="state_id"]').empty();
                  // $('select[name="state_id"]').empty().append('<option value='+ data +' selected>'+data+'</option>');
              }
            });
        }else{
          $('select[name="state_id"]').empty().append("<option value='' selected>Select</option>");
        }
    });
  });

我已尝试datadata->namedata['name']所有人都返回[object object]

这是我的控制台打印在console.log(data);

[]
length: 0
__proto__: Array []

[…]
0: Object { id: 1, name: "ACEH", country_id: 101 }
1: Object { id: 16, name: "BALI", country_id: 101 }
2: Object { id: 15, name: "BANTEN", country_id: 101 }
.....
length: 32
__proto__: Array []

任何想法?

4 个答案:

答案 0 :(得分:2)

通过查看您的代码,我认为注释的代码应该像

var options = '';
data.forEach(function(country) {
    options += '<option value='+ country.id +' selected>'+country.name+'</option>'
})
$('select[name="state_id"]').empty().append(options);

答案 1 :(得分:0)

您正在安慰的数据是数组格式。 您需要访问对象的每个索引。 试试这个内部成功函数,

for(var i=0;i<data.length;i++ ){

console.log('name-',i,'= ',data[i].name)

}

答案 2 :(得分:0)

[object Object]是javascript中对象的默认toString表示。

如果你想知道对象的属性,可以像这样预先知道:

for(var property in data) {
    alert(property + "=" + data[property]);
}

<强>更新

for(var property in data) {
   if(data[property]){
      console.log(data[property])
   }
}

答案 3 :(得分:0)

Cant Comment ..所以这里是@Aswin Ramesh的补充: 也许从选项属性中删除选定的属性,并将其仅添加到第一个选项。这是OP的错误