使用.remove()vs .detach()删除待办事项列表项

时间:2018-04-01 20:19:13

标签: javascript jquery

我使用jQuery(CodePen)创建了一个待办事项列表。为了删除列表项,我使用了

 $(document).on('click', '.item', function() {
    $(this).remove();
  }); 

我想知道如果我使用.detach()而不是.remove()(尝试过两者,功能似乎相同)是否重要。我阅读了文档,并了解.remove()删除元素本身以及其中的所有内容以及绑定事件,而.detach()执行相同操作但保留与删除元素关联的jQuery数据。

如果我使用.detach()并因此维护相关数据会产生什么影响?

1 个答案:

答案 0 :(得分:1)

removeDOM及其中的所有内容中获取元素,而detach删除DOM并保留数据,如果您想将其重新插入其他位置:

https://api.jquery.com/detach/

  

.detach()方法与.remove()相同,但.detach()除外   保持所有jQuery数据与删除的元素相关联。这个   当要删除的元素要重新插入时,方法很有用   以后的DOM。

使用remove()删除元素,detach()将其移动到其他位置。

$('#myTodo').remove(); // deletes the todo

const detachedTodo = $('#myTodo').detach(); // removes the todo and keep it in a variable

$('#addButton').on('click', function(){
     ('#completeTodos').append(detachedTodo) ; // add the removed todo to the completed list
});