问答详情
源自:2-9 jQuery选择器之可见性筛选选择器

啥意思啊?

function show (ele) {

if (ele instanceof jQuery) {

$("#show").html('元素的长度的 = ' + ele.length)

} else {

alert(ele+' 不是jQuery对象')

}

}


提问者:qq_白开水_62 2017-03-15 16:23

个回答

  • 呦呦慕粉
    2017-06-03 20:55:26

    其实这段代码有问题,你先改下,我再告诉你。

    你把里边的那个.html改为.append,就能出现正常结果了,因为HTML虽然也是添加内容,但会覆盖以前的,虽然进行六次,但也覆盖六次最终只显示最后一次的。。改为这个$("#show").append('元素的长度的 = ' + ele.length+"<br/>"),,正确结果如下:

    http://img.mukewang.com/5932af2600015ba502890360.jpg

    其实整段代码的意思是:

    首先,

     <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。


  • _Rock
    2017-04-11 15:30:46

    结合下方的代码可以理解成这样:,假设一个div是可见的,那么下方可见性元素选择器$("div:visible")是会选中该元素,上方函数传入该元素则会判断该元素是不是jQuery元素,显然是true.则会执行$("#show").html('元素的长度的 = ' + ele.length)语句:选择ID为show的元素,将其html内容设置为传入文字+传入元素的长度,如果传入元素为空(即未选到该元素),则该元素长度为0。。。而如果div是不可见的,那么下方可见性元素选择器$("div:visible")是选不到的,而反过来用不可见性选择器$("div:hidden")结果相反。求采纳

  • ZOOUM
    2017-03-15 17:46:00

    如果这个元素是Jquery对象,那么输出这个对象的长度,否则弹出警告