在新生成的元素上附加数据

时间:2014-05-06 21:49:43

标签: javascript php jquery html

我试图将一些数据添加到新生成的Div元素中,但它不会起作用。

$.ajax({
    type: "POST",
    url: 'code/submit/submitGetChat.php',
    data: "id="+chatListArray[i],
    async: false,
    success: function(data){                    
        $('#chatItemContent_' + chatListArray[i]).empty();
        $('#chatItemContent_' + chatListArray[i]).append(data);                     
        $('#chatItemContent_' + chatListArray[i]).animate({ scrollTop: $(document).innerHeight() }, 1);
    }
});

这是当前的代码。 Ajax调用的结果应该附加在父元素上。

1 个答案:

答案 0 :(得分:2)

我要在黑暗中刺伤(虽然是受过教育的人)。

看起来你正在循环一堆ajax调用并希望将结果数据传递给相关元素,但是你已经赢得了这样做。索引值不是本地的,因此在ajax调用完成时它是不同的。尝试在这样的机箱中包装ajax调用...

(function(id) {
    $.ajax({
        type: "POST",
        url: 'code/submit/submitGetChat.php',
        data: "id=" + id,
        async: false,
        success: function(data){                    
            $('#chatItemContent_' + id).empty();
            $('#chatItemContent_' + id).append(data);
            $('#chatItemContent_' + id).animate({ scrollTop: $(document).innerHeight() }, 1);
        }
    });
})(chatListArray[i]);

另外,作为旁注,您可以在成功回调中链接您正在使用的功能,例如......

$('#chatItemContent_' + id)
    .empty()
    .append(data)
    .animate({ scrollTop: $(document).innerHeight() }, 1);

它不会打破音障或类似的东西,但选择一次而不是3次会更快:)