qq_白开水_62
2017-03-15 16:23
function show (ele) {
if (ele instanceof jQuery) {
$("#show").html('元素的长度的 = ' + ele.length)
} else {
alert(ele+' 不是jQuery对象')
}
}
其实这段代码有问题,你先改下,我再告诉你。
你把里边的那个.html改为.append,就能出现正常结果了,因为HTML虽然也是添加内容,但会覆盖以前的,虽然进行六次,但也覆盖六次最终只显示最后一次的。。改为这个$("#show").append('元素的长度的 = ' + ele.length+"<br/>"),,正确结果如下:
其实整段代码的意思是:
首先,
<script type="text/javascript">
show($("#div1:visible"));
</script>
这段代码是先找到ID是div1的可见的元素。然后作为function show (ele) 函数的实参传递给形参ele。。。。if (ele instanceof jQuery) 这句话是进行判断,看ele是否符合jquery对象,如果是就执行$("#show").append('元素的长度的 = ' + ele.length+"<br/>"),这句代码是,选择ID为show的元素节点在其里边添加内容。所添加的内容是元素的长度,这个元素就是可见的元素,<p id="div1" style="display:none;">display</p>就是这个元素,很明显它有style="display:none;是不可见的,,所以可见的元素长度为0,,剩下的一样。。
特别说明:元素的visibility: hidden 或 opacity: 0被认为是可见的,因为他们仍然占用空间布局。,所以在判断ID为div3的元素时,它是可见的,依次可见元素长度为1。
剩下三个是判断是否不可见元素的长度,,那他们刚好与前边三个相反。。前三个时可见元素长度为0,0,1。那不可见元素长度就是1,1,0。
结合下方的代码可以理解成这样:,假设一个div是可见的,那么下方可见性元素选择器$("div:visible")是会选中该元素,上方函数传入该元素则会判断该元素是不是jQuery元素,显然是true.则会执行$("#show").html('元素的长度的 = ' + ele.length)语句:选择ID为show的元素,将其html内容设置为传入文字+传入元素的长度,如果传入元素为空(即未选到该元素),则该元素长度为0。。。而如果div是不可见的,那么下方可见性元素选择器$("div:visible")是选不到的,而反过来用不可见性选择器$("div:hidden")结果相反。求采纳
如果这个元素是Jquery对象,那么输出这个对象的长度,否则弹出警告
jQuery基础 (一)—样式篇
217509 学习 · 1218 问题
相似问题