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

为什么会显示不是JQ对象,不是已经用$变成JQ对象了吗?为什么会显示不是JQ对象,不是已经用$变成JQ对象了吗?为什么会显示不是JQ对象,不是已经用$变成JQ对象了吗?

为什么会显示不是JQ对象,不是已经用$变成JQ对象了吗?

<!DOCTYPE html>

<html>


<head>

    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />

    <title></title>

    <link rel="stylesheet" href="imooc.css" type="text/css">

    <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>

</head>


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

var count = 0;

function show (ele) {

if (ele instanceof jQuery) {

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

count++;

else {

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

count++;

}

alert(count);

}

</script>

</body>

</html>

    <script type="text/javascript">

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

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

    </script>

为什么会显示不是JQ对象,不是已经用$变成JQ对象了吗?

之后我在方法里加一个count,最后一次count显示4,大家帮帮忙解释一下为什么?

var count = 0;

function show (ele) {

if (ele instanceof jQuery) {

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

count++;

else {

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

count++;

}

alert(count);

}


提问者:慕粉4345620 2017-02-17 19:10

个回答

  • qq_这是只仓鼠_0
    2017-02-27 01:30:00
    已采纳

    首先代码还是不全只给了第一个SHOW()的 另外其他的如果你没有去修改原本的代码 那肯定会提示你不是JQ对象,你需要先确认到底是不是这第一个SHOW()报的不是JQ对象,我直接复制你这句代码,没有问题不会提示非JQ对象至于总共4次,其实应该不止4次,你通过 show()调用了几次 他就是几

  • qq_娴言蜜语_0
    2017-02-17 20:19:15

    代码请贴全,你这div1鬼知道哪来的