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

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

if (!$("p").length) return; 去重 有大神能解釋下去重是什么鬼?

if (!$("p").length) return;? 把這行代碼刪除。。多次點擊刪除p元素,點擊移動p元素就沒有效果了,為什么?這句話能有大神解釋下嗎

正在回答

8 回答

$("p").length返回的不應該是2嗎?

length屬性的返回值是Number類型,返回該jQuery對象封裝的DOM元素的個數。

如果該對象是一個空的jQuery對象,沒有封裝任何元素,則返回0。

但是不是有兩個p嗎?


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

贊美太陽1123

不是很懂啊~
2018-07-24 回復 有任何疑惑可以回復我~

我測試了一下,執行兩側death基本上是從內存中徹底刪除了,所以回不來了

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

if (!$("p").length)是if ($("p").length == null)的逼格寫法?

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

if (!$("p").length) return;?

if語句接收一個布爾值,如果布爾值為true則執行接下來的語句,布爾值為false則執行else關鍵詞后的語句。

JavaScript語言有個特點”隱式轉換”:在需要布爾值會將其他類型自動往布爾值轉換$("p").length本來返回的是number類型的0,但被自動轉化為布爾值false了。前面也說了,如果IF語句接收到布爾值false就會執行else關鍵詞后的語句,這里沒有寫else后的語句。所老師把在前面加了個!,這個東西時一個叫“邏輯非”的操作符,作用就是將布爾值取反,true變成false,false變成true。

所以if (!$("p").length) return;可以翻譯成 ?if(p的長度為零的話~)就直接返回。不執行下一條的detach命令

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

qq_慕萊塢8430671

厲害了
2017-05-30 回復 有任何疑惑可以回復我~

if (!$("p").length) return; 去重中,!嘆號是什么意思 啊


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

田展帆

邏輯非運算符,將布爾值取反
2016-08-19 回復 有任何疑惑可以回復我~

應該是當你多次點擊之后p元素刪除完了,這時候再點擊刪除鍵那么p = $("p").detach()中的p則會賦值為NULL,這時候你怎么添加都不會有效果了

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

從你自測的效果看,多次detach會使托管的p真正丟失。這里做去重,可能就是為了防止多次點擊刪除導致的丟失吧

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

如果p的長度為空,停止,字面就這么個意思,你就光這么一句話,能力有限看不出來

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

舉報

0/150
提交
取消

if (!$("p").length) return; 去重 有大神能解釋下去重是什么鬼?

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

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

幫助反饋 APP下載

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

公眾號

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