赞美太阳1123
2018-07-24 10:44
下面是别人家的例子:
length
属性的返回值是Number类型,返回该jQuery对象封装的DOM元素的个数。
如果该对象是一个空的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
if那句话意思是,如果p没有长度了,那么函数不进行操作,如果有长度,就临时删除p。防止你重复删除。
!是非的意思
这一步是避免重复detach,重复操作下面一步恢复就不行了
<body>
<p>P元素1,默认给绑定一个点击事件</p>
<p>P元素2,默认给绑定一个点击事件</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方法删除元素
//只是页面不可见,但是这个节点还是保存在内存中
//数据与事件都不会丢失
p = $("p").detach()
});
那么到底这里面的$("p").length返回几啊~
$("p")是指p元素,代码中没有p元素啊,返回肯定是0。
jQuery基础(二)—DOM篇
114014 学习 · 590 问题
相似问题