不是有兩個p元素嗎,那么$("p").length返回不應(yīng)該是2嗎?怎么是0呢?不是很懂啊
下面是別人家的例子:
length
屬性的返回值是Number類型,返回該jQuery對象封裝的DOM元素的個數(shù)。
如果該對象是一個空的jQuery對象,沒有封裝任何元素,則返回0。
示例&說明
以下面這段HTML代碼為例:
<div?id="n1"> ????<div?id="n2"> ????????<ul?id="n3"> ????????????<li?id="n4">item1</li> ????????????<li?id="n5">item2</li> ????????????<li?id="n6">item3</li> ????????</ul> ????</div>?? </div>
我們編寫如下jQuery代碼:
var?j_li?=?$("ul?li"); document.writeln(?j_li.length?);?//?3 var?j_p?=?$("p");?//?沒有p元素,返回空的jQuery對象 document.writeln(?j_p.length?);?//?0
2018-08-18
if那句話意思是,如果p沒有長度了,那么函數(shù)不進(jìn)行操作,如果有長度,就臨時刪除p。防止你重復(fù)刪除。
2018-07-24
!是非的意思
這一步是避免重復(fù)detach,重復(fù)操作下面一步恢復(fù)就不行了
2018-07-24
<body>
? ? <p>P元素1,默認(rèn)給綁定一個點擊事件</p>
? ? <p>P元素2,默認(rèn)給綁定一個點擊事件</p>
? ? <button id="bt1">點擊刪除 p 元素</button>
? ? <button id="bt2">點擊移動 p 元素</button>
? ? <script type="text/javascript">
? ? $('p').click(function(e) {
? ? ? ? alert(e.target.innerHTML)
? ? })
? ? var p;
? ? $("#bt1").click(function() {
? ? ? ? if (!$("p").length) return; //去重
? ? ? ? //通過detach方法刪除元素
? ? ? ? //只是頁面不可見,但是這個節(jié)點還是保存在內(nèi)存中
? ? ? ? //數(shù)據(jù)與事件都不會丟失
? ? ? ? p = $("p").detach()
? ? });
那么到底這里面的$("p").length返回幾啊~
2018-07-24