问答详情
源自:6-2 jQuery遍历之find()方法

var $spans = $('span');

<!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">
    <style>
    .left {
        width: auto;
        height: 200px;
    }
    
    .left div {
        width: 150px;
        height: 70px;
        padding: 5px;
        margin: 5px;
        float: left;
        background: #bbffaa;
        border: 1px solid #ccc;
    }
    
    .span {
        color: blue;
    }
    </style>
    <script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
</head>

<body>
    <h2>find方法()</h2>
    <div class="left first-div">
        <div class="div">
            <ul class="level-1">
                <li class="item-1">1</li>
                <li class="item-2">2</li>
                <li class="item-3">3</li>
            </ul>
        </div>
        <div class="div">
            <ul class="level-2">
                <li class="item-1">1</li>
                <li class="item-2 test">2</li>
                <li class="item-3">3</li>
            </ul>
        </div>
        <div class="div">
            <ul class="level-3">
                <li class="item-1">1</li>
                <li class="item-2">2</li>
                <li class="item-3">3</li>
            </ul>
        </div>
    </div>
    <button>点击:find传递表达式</button>
    <br/>
    <br/>
    <h3>find表达式</h3>
    <div style="border:1px solid red;">
        <p>
            <span>测试1</span>
            <a>测试2</a>
        </p>
        <p>
            <span>慕课网1</span>
            <a>慕课网2</a>
        </p>
        <div>
            <span>Aaron1</span>
            <a>Aaron2</a>
        </div>
    </div>
    <br/>
    <br/>
    <button>点击:find传递$对象</button>
    <script type="text/javascript">
    $("button:first").click(function() {
        $(".left").find("li:last").css('border','1px solid red')
    })
    </script>
    <script type="text/javascript">
    $("button:last").click(function() {
        //找到所有p元素,然后筛选出子元素是span标签的节点
        //改变其字体颜色
        var $spans = $('span');
        $("p").find($spans).css('color', 'red');
    })
    </script>
</body>

</html>

为什么要写上这一步:var $spans = $('span');

提问者:清水流 2017-02-17 14:09

个回答

  • ClasName
    2017-02-17 14:44:54
    已采纳

    var $spans = $('span');  这样写是找到全局的span。

    然后再下一步 $("p").find($spans).css('color', 'red');       p中过滤掉  $spans  

    当然,直接写 $("p").find('span').css('color', 'red');  也可以达到同样的效果


  • 淡水狗
    2017-06-15 14:54:09

    我觉得那样写很麻烦 ,还不如直接写$('p > span).css('color' , 'red');

  • 慕粉1626556005
    2017-02-17 14:37:30

    不写也没关系啊 , $(),是个对象 , 里面可以是element , 也可以是选择器,或者其他的 , 不写var $spans = $('span');

    把find()改成find('span')效果是一样;不求甚解,别追究的太细了