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


Append Data on new generated Element

我正在尝试添加一些数据到一个新生成的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调用的结果应该附加在父元素上。

我将在黑暗中尝试一下(尽管是受过教育的人;)。

看起来您正在循环通过一堆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);

它不会打破音障或类似的东西,但它做一次选择比三次更快:)