【问题标题】:how can I remove dynamically added li in ul using jquery如何使用 jquery 删除 ul 中动态添加的 li
【发布时间】:2015-06-19 07:02:39
【问题描述】:

如何在点击事件触发时动态删除 li,因为我想加载新的 li。

我尝试了类似 $(".wrapper-n ul").empty(); 的方法,但没有成功。它会不断添加新的 li。

提前谢谢你。

$(function () {
        $.ajax({
            ...
            ....
            ...
            success:function(data){
                        for (var id = 0; i < data.length; i++) {
                        var dynamicli = '<li class="">' +
                        '<img src="path/to/image" class="_xy">' + data[i].name + '<i class="glyphicon glyphicon-user oncho"></i>' +
                        '<span class="myspan" id="' + data[i].id + '></span></li>';
                        $('#myullist').append(dynamicli);
                    }
             }

        });

    $('#myullist').on('click', '.oncho', function () {
        var id = $(this).find('span').attr('id');
        $(".wrapper-n ul").empty();
            $.ajax({
                ...
                ...
                success: function (data) {

                    for (var id = 0; i < data.length; i++) {
                                var dynamicli = '<li class="">' +
                                '<img src="path/to/image" class="_xy">' + data[i].name + '<i class="glyphicon glyphicon-user oncho"></i>' +
                                '<span class="myspan" id="' + data[i].id + '></span></li>';
                                $('#myullist').append(dynamicli);
                    }

                }
            });
    });
});

//index.html

 <div class="wrapper-n">

    <ul id="myullist"></ul>
</div>

编辑:我修复了我使用了错误的选择器。谢谢你帮助我。

【问题讨论】:

  • 它不起作用怎么办?打完.empty之后,老李还在吗?你的 for 循环也是 for (var id = 0; i &lt; data.length; i++) 你的意思是有 var i = 0 吗?
  • 为什么开头有for循环?执行时没有定义data 变量,您可能会出错,您查看控制台是否有错误?
  • @PatrickEvans 我更新了我的帖子

标签: javascript jquery event-handling


【解决方案1】:

使用.html(''),这基本上会删除你所有的li,事实上你的ul会变成空的:

$(".wrapper-n ul").html('');

【讨论】:

  • 请解释你的答案。
  • @Dropout 现在还好吗??
【解决方案2】:

在 Jquery 中使用.remove() 方法。

【讨论】:

  • 这将删除整个元素。
  • 这就是要实现的目标吧?完全删除旧的li,然后追加新的li
  • @AnoopJoshi 你能解释一下为什么 Varun 的回答和我的回答是错误的,我们应该投反对票吗?您甚至了解问题的语法吗?我们基本上只是从字面上回答“elements.remove();”Jemz 甚至没有提到不应该删除整个元素。
【解决方案3】:

试试 $(".wrapper-n ul").children('li').remove();

【讨论】:

  • 我不记得这个问题的上下文,但我注意到的一件事是,$(".wrapper-n ul").empty() & $(".wrapper-n ul" ).children('li').remove();会有同样的效果。不过,我并没有否决您的回答。
猜你喜欢
  • 1970-01-01
  • 2011-08-21
  • 1970-01-01
  • 2014-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-09
  • 1970-01-01
相关资源
最近更新 更多