jQuery选择器(重点)

重点记住:parent(),children(),find(),siblings(),eq(),
重点这张图片的语法里面的prevAll那里字母有一点错误,多了一个 t

栗子:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="jquery-mini.js"></script>
</head>

<body>
    <div class="grandfather">
        <div class="father">
            <div class="son">儿子</div>
        </div>
    </div>

    <div class="nav">
        <p>你是屁</p>
        <div>
            <p>你是p</p>
        </div>
    </div>
    <script>
        //注意一下都是方法 要带括号
        $(function() {
            //1.父  parent()    返回的是最近一级的父级元素  亲爸爸
            console.log($('.son').parent());

            //2.子
            //(1)只选亲儿子     children()  类似子代选择器      ul>li
            $('.nav').children('p').css('color', 'red')
                //(2)可以选里面所有的孩子,可以是儿子和孙子     find()    类似于后代选择器
            $('.nav').find('p').css('color', 'red');

            //3.兄
            
        })
    </script>
</body>

</html>

栗子:选出兄弟元素

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="jquery-mini.js"></script>
</head>

<body>
    <ol>
        <li>我是ol 的li</li>
        <li>我是ol 的li</li>
        <li class="item">我是ol 的li</li>
        <li>我是ol 的li</li>
        <li>我是ol 的li</li>
        <li>我是ol 的li</li>
    </ol>
    <ul>
        <li>我是ul 的li</li>
        <li>我是ul 的li</li>
        <li>我是ul 的li</li>
        <li>我是ul 的li</li>
        <li>我是ul 的li</li>
        <li>我是ul 的li</li>
    </ul>
    <div class="current">俺有current</div>
    <div>俺木有current</div>
    <script>
        //注意一下都是方法 要带括号
        $(function() {
            //1.兄弟元素siblings 除了自身元素之外的所有亲兄弟
            $('ol .item').siblings('li').css('color', 'red')

            //2.第n个元素
            var index = 3;
            //(1)我们可以利用选择器的方式选择
            $('ul li:eq(2)').css('color', 'blue');
            //(2)我们可以利用选择方法的方式选择    更推荐这种方法因为eq里面的数字没有在引号之内这样方便我们可以修改
            $('ul li').eq(index).css('color', 'blue');

            //3.判断是否有某个类名
            // $('div:first').hasClass('current');
            console.log($('div:first').hasClass('current'));
            console.log($('div:last').hasClass('current'));
        })
    </script>
</body>

</html>

栗子:新浪下拉菜单

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <script src="jquery-mini.js"></script>
</head>

<body>
    <ul class="nav">
        <li>
            <a href="#">微博</a>
            <ul>
                <li>
                    <a href="#">私信</a>
                </li>
                <li>
                    <a href="#">评论</a>
                </li>
                <li>
                    <a href="#">@我</a>
                </li>
            </ul>
        </li>
        <li>
            <a href="#">微博</a>
            <ul>
                <li>
                    <a href="#">私信</a>
                </li>
                <li>
                    <a href="#">评论</a>
                </li>
                <li>
                    <a href="#">@我</a>
                </li>
            </ul>
        </li>
        <li>
            <a href="#">微博</a>
            <ul>
                <li>
                    <a href="#">私信</a>
                </li>
                <li>
                    <a href="#">评论</a>
                </li>
                <li>
                    <a href="#">@我</a>
                </li>
            </ul>
        </li>
    </ul>

    <script>
        $(function() {
            //鼠标经过
            $('.nav>li').mouseover(function() {
                    //$(this) jquery 当前元素 this不要加引号
                    //show() 显示元素 hide() 隐藏元素
                    $(this).children('ul').show();
                })
                //鼠标离开
            $('.nav>li').mouseout(function() {
                $(this).children('ul').hide();
            })
        })
    </script>
</body>
</html>

jquery里面的排他思想
想要多选一的效果,排他思想:当前元素设置样式,其余的兄弟元素清除样式

栗子:给按钮添加背景颜色,当选中其中一个按钮,当前按钮变色,其他按钮自动清除背景颜色效果。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="jquery-mini.js"></script>
</head>

<body>
    <button>快速</button>
    <button>快速</button>
    <button>快速</button>
    <button>快速</button>
    <button>快速</button>
    <button>快速</button>
    <button>快速</button>
    <script>
        $(function() {
            //1.隐式迭代    给所有的按钮绑定了点击事件
            $('button').click(function() {
                //2.当前的元素变化背景颜色
                $(this).css('background', 'pink');
                //3.其余的兄弟去掉背景颜色  隐式迭代
                $(this).siblings('button').css('background', '');
            })
        })
    </script>
</body>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值