为了账号安全,请及时绑定邮箱和手机立即绑定

detach()和remove()的区别

var p = $("p:first").remove();

p.css('color','red').text('p1通过remove处理后,点击该元素,事件丢失')

$("body").append(p);


以上代码,p首先被移除掉了,自身元素p标签也应该将移除了,可是为什么p又重新设置样式及内容的时候却还是会是p标签呢


正在回答

3 回答

在一个函数里,定义一个临时变量,remove():临时变量清空/detach():临时变量内的值还在。当然函数执行完毕以后,所有的这些,都释放了,消逝在风雨中。

0 回复 有任何疑惑可以回复我~

var p = $("p:first").remove();

1:console.log(p.html())

2:console.log(p)

p.css('color','red').text('p1通过remove处理后,点击该元素,事件丢失')

$("body").append(p);



1:元素p1,同时绑定点击事件

2:[p, prevObject: jQuery.fn.jQuery.init[1], context: document, selector: "p:first"]


0 回复 有任何疑惑可以回复我~
#1

qq_悠悠我心_4

这个可不可以这么理解,var p = $("p:first").remove();虽然remove掉了<p>节点,只是把<p>从文档中清楚了,但是还可以被其他的使用,要不alert(p.html())怎么还会alert出(元素p1,同时绑定点击事件)呢?这点不懂,求指教!谢谢
2016-07-17 回复 有任何疑惑可以回复我~
#2

qq_悠悠我心_4 回复 qq_悠悠我心_4

从DOM中删除所有匹配的元素。 这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。但除了这个元素本身得以保留之外,其他的比如绑定的事件,附加的数据等都会被移除。
2016-07-17 回复 有任何疑惑可以回复我~

难道$("p:first")当做为参数了么?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

detach()和remove()的区别

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信