亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

var p = $("p:first").remove();,這一句代碼中的p是不是其實什么東西都沒有?

$("button:first").click(function() {

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

? ? ? ? p.css('color','red').text('p1通過remove處理后,點擊該元素,事件丟失')

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

? ? });

這段代碼里,p是不是沒有東西了?之后給它定義新的樣式和文字,并附加到body中。然后,因為remove()會把節點上的事件與數據都刪除,所以之前添加的點擊事件也早就被刪除了.因此點擊新定義的p節點,沒有彈出消息框,我的理解對吧?

正在回答

3 回答

我也有在這個疑惑,后面我把

?p.css('color','red').text('p1通過remove處理后,點擊該元素,事件丟失')

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

改成

p.css('color','red')

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

發現還保留這刪除前的文本


0 回復 有任何疑惑可以回復我~
var?p?=?$("p:first").remove();

這行代碼是從文檔流中刪除p元素,然后賦給一個新定義變量p.新p保存了原先刪除的那個對象,但是沒有它的方法和數據。

2 回復 有任何疑惑可以回復我~

不是的,remove()函數的返回值為jQuery類型,返回當前jQuery對象本身。remove()函數會移除文檔中匹配的元素,但不會將匹配元素從jQuery對象中移除,不過remove()只會保留元素本身,其他的諸如元素所關聯的附加數據和綁定事件等都會被移除。

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

weibo_和諧_漢子_0

搞錯了吧?remove()移除了元素本身和自己身上的事件啊。
2017-05-18 回復 有任何疑惑可以回復我~
#2

今天晴空萬里3294401 回復 weibo_和諧_漢子_0

沒錯,remove()的確會移除元素本身和自己身上的事件,但是也有返回值,如果你用一個變量去接收它的返回值,就可以使用這個元素本身,只不過數據和事件都會消失
2017-06-02 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

var p = $("p:first").remove();,這一句代碼中的p是不是其實什么東西都沒有?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號