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

.children()的父子问题

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

<body>
    <h2>children方法()</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">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 id="bt1">点击:children无参数</button>
    <button id="bt2">点击:children传递表达式</button>
    <script type="text/javascript">
    $("#bt1").click(function() {
        $('.left first-div').children().css('border', '3px solid red') 
    })
    </script>

    <script type="text/javascript">
    $("#bt2").click(function() {
        //找到所有class=div的元素
        //找到其对应的子元素ul,然后筛选出最后一个,给边宽加上颜色
        $('.div').children(':first').css('border', '3px solid blue')
    })
    </script>

</body>

</html>

要完成【找到所有class=div的元素节点,然后找到其对应的子元素,并且加上一个红色边框
】此要求 为什么第60行不能这样写 而要写成

$('.div').children().css('border', '3px solid red')


提问者:爱豆是二源儿 2016-09-28 20:21

个回答

  • 慕粉3710174
    2017-01-07 06:51:06
    已采纳

    你好~你所写的类选择写错了.33行中<div class="left first-div">的意思是该div有两个class名:一个是left,一个是first-div,而你在60行中写的 $('.left first-div')的意思是选择class名为:left first-div.显然是错误的.

    在jquery中,用于选择多个选择器时,应用逗号隔开.如:$('.class1','class2')

  • 不会取名字
    2016-09-28 20:40:13

    如果非要想写详细 这么写 $('.left.first-div').children().css('border', '3px solid red')

  • 不会取名字
    2016-09-28 20:39:08

    你的选择器写错了,程序根本找不到东西    $('.left first-div').children().css('border', '3px solid red') 你这个的意思是class=left的标签里面的first-div标签的子元素~怎么可能对...