JQUERY /向DIV添加元素迭代数组只存储最后一个元素

时间:2015-02-06 03:52:18

标签: jquery html append

我收到一个被解析的JSON数组,每个元素将通过使用Jquery的每个方法迭代该数组而被放入DIV,问题是DIV只存储最后一个元素。

以下是代码:

//I receive a JSON array via AJAX and then I parse it
    var arreglo=$.parseJSON(respuesta);
    $('#resultadoBusqueda').addClass('divNoEscondido')
    //Then I iterate over the array to insert each value and each key as an individual element
    $.each(arreglo,function(key,value){
        $('#resultadoBusqueda').append('h1').text(key);
        $('#resultadoBusqueda').append('h1').text(value);
// The problem is that the div that receives the new elements only stores the last one
        })

2 个答案:

答案 0 :(得分:1)

您需要为数组中的每个项目创建新的h1元素,以便

var arreglo = $.parseJSON(respuesta);
var $ct = $('#resultadoBusqueda').addClass('divNoEscondido')
//Then I iterate over the array to insert each value and each key as an individual element
$.each(arreglo, function (key, value) {
    $('<h1/>', {
        text: key
    }).appendTo($ct)
    $('<h1/>', {
        text: value
    }).appendTo($ct)
})

您正在做的是,将文字h1附加到#resultadoBusqueda,然后使用当前项的键覆盖#resultadoBusqueda的整个内容,然后使用当前值覆盖item,所以在循环结束时,只有循环中最后一项的值可见。

答案 1 :(得分:0)

jQuery append方法返回容器。所以你应该写这样的代码:

$('#resultadoBusqueda').append('h1');
$('#resultadoBusqueda h1').text(key);