javascript - 使用 JQuery 追加元素会删除先前的元素

标签 javascript jquery html ajax append

我有一个 ul,它在 AJAX 请求后 append 了几个 li。列表中先前的元素被删除,这是为什么?

AJAX调用函数:

var $comments = $('.comments').find('ul');

$comments.text('Loading...');

    $.ajax({
        type: 'get',
        url: 'http://localhost/codeigniter/',
        success: function(result){

            if (result == 0){
                $comments.text('No comments.');

                return;
            }                           

            $comments.text('');

            display_comments(result);
        }
    });

列表显示功能:

function display_comments(result){
var result_comments = JSON.parse(result);   

var $ul = $('.comments').find('ul');

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

        // Insert comments
        lis += '\
            <li>\
                ' + comments[i].title + '\                  
                <p>' + comments[i].description +'\
            </li>';
    }

$ul.append(lis);
}

最佳答案

因为这个

$comments.text('Loading...');

还有这个

$comments.text('No comments.');

还有这个

$comments.text('');

发生这种情况的原因是 jQuery 的 .text()方法覆盖匹配元素的内容。在 ul 的情况下其内容是任意子 li s。因此,当您开始加载列表项时,您的 ul变为:<ul>Loading...</ul>

关于javascript - 使用 JQuery 追加元素会删除先前的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23798370/

相关文章:

javascript - 使用弹出编辑器添加时 Kendo 网格数据未显示?

javascript - 如何从 Highchart 获取元素属性

html - 如何在 URL 中传递 false bool 变量

javascript - 渐进增强和优雅降级有什么区别?

javascript - WebStorm,使用 Node Supervisor(所以每次代码更改后不必重新启动)?

javascript - AJAX inside $.when 给出返回字符串的第一个字符

html - Sharepoint 中的顶部菜单导航

css - 当高度为 :auto 时,父 div 不出现

javascript - 作为 JavaScript 中每 4 个字符的连字符

javascript - 使用 JavaScript 或 JQuery 模拟用户点击