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

用的最新版本3.1的jQuery ,div2 应该是隐藏的吧,为什么visible显示是长度是1 而hidden显示长度是0呢?

<body>

<h2>可见性筛选选择器</h2>

<h3>:visible/:hidden</h3>

<div class="left">

<div class="div">

<a>display</a>

<p id="div1" style="display:none;">display</p>

</div>

<div class="div">

<a>width</a>

<a>height</a><p id="div2" style="width:0;height:0">width/height</p></div>

<div class="div">

<a>visibility</a>

<a>opacity</a>

<p id="div3" style="visibility:hidden;opacity:0">visibility</p>

</div>

</div>


<p id="show"></p>

<script type="text/javascript">

function show(ele) {

if (ele instanceof jQuery) {

$("#show").append('元素的长度的 = ' + ele.length+'<br />')

} else {

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

}

}

</script>

<script type="text/javascript">

//查找id = div1的DOM元素,是否可见

show($('#div1:visible'));

</script>


<script type="text/javascript">

    //查找id = div2的DOM元素,是否可见

    show( $('#div2:visible')  );

</script>


<script type="text/javascript">

    //查找id = div3的DOM元素,是否可见

    show(  $('#div3:visible')  );

</script>


<script type="text/javascript">

    //查找id = div1的DOM元素,是否隐藏

    show( $('#div1:hidden'));

</script>


<script type="text/javascript">

    //查找id = div2的DOM元素,是否隐藏

    show($('#div2:hidden'));

</script>


<script type="text/javascript">

    //查找id = div3的DOM元素,是否隐藏

    show($('#div3:hidden'));

</script>


</body>

我这边显示的结果是  :

元素的长度的 = 0
元素的长度的 = 1
元素的长度的 = 1
元素的长度的 = 1
元素的长度的 = 0
元素的长度的 = 0

是哪里出现问题了吗?

提问者:慕设计5345508 2019-04-08 15:30

个回答

  • 慕设计5345508
    2019-04-08 16:31:10

    那么新的问题来了,这个究竟算是 显示的元素 还是 隐藏的元素呢?感觉更懵了。。。

    有没有大神给个结论呢?

  • 慕设计5345508
    2019-04-08 16:27:36

    找到原因了。 jQuery版本问题。 用课程中的1.9版本的结果是:

    元素的长度的 = 0
    元素的长度的 = 0
    元素的长度的 = 1
    元素的长度的 = 1
    元素的长度的 = 1
    元素的长度的 = 0

    用最新的3.1版本的是:

    元素的长度的 = 0
    元素的长度的 = 1
    元素的长度的 = 1
    元素的长度的 = 1
    元素的长度的 = 0
    元素的长度的 = 0

  • 慕设计5345508
    2019-04-08 15:32:47

    求大神指点,因为我看了别人发的问题和回答,结果中 第二个应该是0,第五个是1. 而我的正好相反