Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从列表中删除元素的更好方法?_Javascript_Jquery - Fatal编程技术网

Javascript 从列表中删除元素的更好方法?

Javascript 从列表中删除元素的更好方法?,javascript,jquery,Javascript,Jquery,我将有一个无序的项目列表()。每个项目都有一个delete按钮,它将进行ajax调用,然后从列表中删除该项目。我有进行Ajax调用所需的所有信息,但我想知道让用户删除列表中任何项目的最佳方法 我的第一个想法是动态地为每个分配一个唯一的类标识符&然后在每个元素上使用jquery的remove(),但是有更好的方法吗?我觉得我的方法有点笨手笨脚。我看不出你的方法有任何问题。您可以使用数据集属性,例如,甚至id,而不是使用类(稍微有些笨拙) $("ul").on('click', 'li', func

我将有一个无序的项目列表(
)。每个项目都有一个delete按钮,它将进行ajax调用,然后从列表中删除该项目。我有进行Ajax调用所需的所有信息,但我想知道让用户删除列表中任何项目的最佳方法


我的第一个想法是动态地为每个
  • 分配一个唯一的类标识符&然后在每个元素上使用jquery的
    remove()
    ,但是有更好的方法吗?我觉得我的方法有点笨手笨脚。

    我看不出你的方法有任何问题。您可以使用数据集属性,例如
  • ,甚至
    id
    ,而不是使用类(稍微有些笨拙)

    $("ul").on('click', 'li', function () {
       $.post('remove-script', 'id=' + this.id, function () {
          $(this).fadeOut(function () { $(this).remove(); });
       });
    });
    

    不需要发明一些唯一的类名(您指的是唯一标识符,对吗?
    id
    ,而不是
    class

    只需使用单击的按钮查找其父级
    li

    $('li .delete_button').click(function() {
      var that = this;
      $.post(url, data, function(data) {
        if(data.can_delete) {
          $(that).parent('li').remove();
        }
      });
    });
    
    HTML


    1,删除标题为删除的li元素

    $("ul li").remove("li[title==delete]");
    
    2、删除第二个li元素

    var $li=$("ul li:eq(1)").remove(); 
    

    没有见过使用
    that
    作为变量来存储对
    this
    的引用)个人更喜欢
    t
    ,但是
    that
    看起来很有趣。如果我没有回答的话,我会因为这个名字而得票;-)@虫族:不管怎样,你应该投票表决,这叫做“体育精神”:-)我最好
    .remove()
    我的答案,然后投票表决你的答案。这个问题太无聊了;-)
    这可以让你删除li元素,它们的标题是delete…
    ——实际上不是。这将从页面中删除所有项目。不管点击了什么
    $("ul li").remove("li[title==delete]");
    
    var $li=$("ul li:eq(1)").remove();