前面写过一篇jQuery文档处理相关的文章,介绍了一下文档操作中删除相关的api。
那么remove与detach的区别最主要的是什么呢?
我们先做个测试,动动手比死的理论影响深刻。
<div id="test" style="width:200px;height:100px;">默认文字</div>
<input type="button" id="detach" value="detach" />
<div id="parent"></div>
$(function(){ //绑hover $('#test').hover(function(){ $(this).html("hover状态"); },function(){ $(this).html("原始的内容"); }); //调用detach; $('#detach').click(function(){ //绑detach //var test = $('#test').detach(); //绑remove var test = $('#test').remove(); $('#parent').append(test); }); });
最后发现:
- detach之后,test的hover事件还存在
- remove之后,test的hover事件不存在
注释:detach与remove返回的都是匹配的jQuery对象
结论:
- detach对所有绑定的事件,附加的数据都会保留,而remove不会