错误的打印价值$ .ajax

时间:2017-09-10 03:48:53

标签: javascript jquery json

我有以下代码:

    var marcas = {
        nome: '',
        fipeId: ''    
    };

    var marcasVet = [];
    var select;


$.ajax({
    dataType: "json",
    url: 'http://fipeapi.wipsites.com.br/carros/marcas',

    success: function(data) {

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

            marcas.nome = data[i].name;
            marcas.fipeId = data[i].id;            


            marcasVet[i] = marcas;

            select += '<p> Marca: ' + marcasVet[i].nome + ' Marca id (Fipe): ' + marcasVet[i].fipeId + '</p>';

        }

        $('#info').html(select);
    }

});

数据存储在marcasVet[]数组中,显示在id="info"

的div中

通过将代码从$('#info').html(select);更改为$('#info').html(marcasVet[10].fipeId);any other index,它仅打印值120,而不是代码$('#info').html(select);中所示的预期值。< / p>

任何人都知道我的错误在哪里?

由于

3 个答案:

答案 0 :(得分:0)

在您的选择中,您添加了自己的单词和

标签,以获得您所看到的内容。但是,如果您执行的marcasVet[10].fipeId仅返回fipeId,而不是您为select变量设置的格式,那么为什么您只看到120而不是$('#info').html(select);

你可以做的可能是

select = '<p> Marca: ' + marcasVet[10].nome + ' Marca id (Fipe): ' + marcasVet[10].fipeId + '</p>';

$('#info').html(select);

答案 1 :(得分:0)

而不是使用它:

marcasVet[i] = marcas;

select += '<p> Marca: ' + marcasVet[i].nome + ' Marca id (Fipe): ' + 
marcasVet[i].fipeId + '</p>';

使用:

marcasVet.push({
 nome:marcas.nome,
 fipeId:marcas.fipeId
});

select += '<p> Marca: ' + marcas.nome + ' Marca id (Fipe): ' + 
marcas.fipeId + '</p>';

如果可以使用jquery,也可以使用$ .each而不是for循环:

$.each(data, function( index, item) {
  marcasVet.push({
  nome: item.nome,
  fipeId: item.fipeId
});

select += '<p> Marca: ' + item.nome + ' Marca id (Fipe): ' + 
item.fipeId + '</p>';

});

答案 2 :(得分:0)

尝试在代码的ajax部分执行以下操作

$.ajax({
    method: 'GET',
    url: 'http://fipeapi.wipsites.com.br/carros/marcas'
  }).done(function(data) {
        for (var i = 0; i < data.length; i++) {

          marcas = {
            nome: data[i].name,
            fipeId: data[i].id
          };


          marcasVet[i] = marcas;

          select += '<p> Marca: ' + marcasVet[i].nome + ' Marca id (Fipe): ' + marcasVet[i].fipeId + '</p>';

        }


        $('#info').html(select);
 });