我使用jQuery(CodePen)创建了一个待办事项列表。为了删除列表项,我使用了
$(document).on('click', '.item', function() {
$(this).remove();
});
我想知道如果我使用.detach()而不是.remove()(尝试过两者,功能似乎相同)是否重要。我阅读了文档,并了解.remove()删除元素本身以及其中的所有内容以及绑定事件,而.detach()执行相同操作但保留与删除元素关联的jQuery数据。
如果我使用.detach()并因此维护相关数据会产生什么影响?
答案 0 :(得分:1)
remove
从DOM
及其中的所有内容中获取元素,而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
});