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

最后运行结果只有一个1 为什么 不是要测试好多个嘛


    <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:display'));

    </script>


    <script type="text/javascript">

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

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

    </script>


    <script type="text/javascript">

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

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

    </script>


提问者:慕工程6236469 2020-02-25 16:12

个回答

  • 慕的地7505431
    2020-06-03 23:09:16

    也可以在在

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

    下一行添加 

    console.log(ele.length);

    在控制台查看信息;

    1 代表true ;

    0 代表false;

    :visible 是选择所有显示元素 ,DIV1 是隐藏元素,所以DIV1返回时的false,是0~

    DIV2,DIV3不是隐藏元素,符合:visible,所有返回的是true,即是1;

    :hidden就反过来理解就行;

  • Dr_nie
    2020-05-09 15:43:50

    因为只有一个<p id="show"></p>,其结果不会叠加,只会覆盖,如果要看每一个测试结果,需要一个一个运行,才能看到单独结果

  • 慕移动0725127
    2020-03-01 14:31:10

    show( $("#div1:visible") ); //div1的CSS display值为none,所以获取不到visible的元素,结果为0
    show( $("#div2:visible") ); //div2的宽度和高度都显式设置为0 ,所以获取不到visible的元素,结果为0
    show(  $("#div3:visible") ); //div3的visibility: hidden 或 opacity: 0被认为是可见的,因为他们仍然占用空间布局,结果1
    show( $("#div1:hidden") ); // 该元素hidden了,获取到一个hidden元素,结果1
    show($("#div2:hidden") ); // 该元素hidden了,获取到一个hidden元素,结果1
    show( $("#div3:hidden")); // 该元素是visible的,获取不到hidden元素,结果0