zoukankan      html  css  js  c++  java
  • jQuery---2. 常用API(jQuery的选择器)

    1. jQuery的选择器

    1.1 jQuery基础选择器

    1.2 jQuery层级选择器

    举例:

    <body>
        <div>我是div</div>
        <div class="nav">我是nav div</div>
        <p>我是p</p>
        <ol>
            <li>我是ol 的</li>
            <li>我是ol 的</li>
            <li>我是ol 的</li>
            <li>我是ol 的</li>
        </ol>
        <ul>
            <li>我是ul 的</li>
            <li>我是ul 的</li>
            <li>我是ul 的</li>
            <li>我是ul 的</li>
        </ul>
        <script>
            $(function() {
                console.log($('.nav'));
                console.log($('ul li'));
    
            })
        </script>
    </body>
    

    打印内容如下

    1.3 隐式迭代(重要)

    知识铺垫

    <body>
        <div>惊喜不,意外不</div>
        <div>惊喜不,意外不</div>
        <div>惊喜不,意外不</div>
        <div>惊喜不,意外不</div>
        <ul>
            <li>相同的操作</li>
            <li>相同的操作</li>
            <li>相同的操作</li>
        </ul>
        <script>
            //1. 获取4个div元素
            console.log($('div')); //k.fn.init(4) [div, div, div, div, prevObject: k.fn.init(1)]
    
            //隐式迭代
            //2. 给四个div设置背景颜色为粉色
            $('div').css('background', 'pink');
            //将ul所有的li中的文字都变成红色
            $('ul li').css('color', 'red');
        </script>
    </body>
    

    1.4 jQuery筛选选择器

    <body>
        <ul>
            <li>多个里面筛选几个</li>
            <li>多个里面筛选几个</li>
            <li>多个里面筛选几个</li>
            <li>多个里面筛选几个</li>
            <li>多个里面筛选几个</li>
            <li>多个里面筛选几个</li>
        </ul>
        <ol>
            <li>多个里面筛选几个</li>
            <li>多个里面筛选几个</li>
            <li>多个里面筛选几个</li>
            <li>多个里面筛选几个</li>
            <li>多个里面筛选几个</li>
            <li>多个里面筛选几个</li>
        </ol>
        <script>
            $(function() {
                //将ul的第一个li选出来并改成红色
                $('ul li:first').css('color', 'red');
                //将ul的第三个li选出来并改成蓝色
                $('ul li:eq(2)').css('color', 'blue');
                //将ol下"索引号"是奇数的li选出来
                $('ol li:odd').css('color', 'skyblue');
            })
        </script>
    </body>
    

    1.5 jQuery里的筛选方法

    父子举例1:

    <body>
        <div class="yeye">
            <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()  若括号里为空,则选取所有亲儿子
                $('.nav').children('p').css('color', 'red');
                //(2)选所有符号条件的孩子(包括孙子) find()   若括号里为空,则选取所有后代
                $('.nav').find('p').css('color', 'blue');
            })
        </script>
    </body>
    

    案例1:下拉菜单

    <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>
                ...
            </li>
            <li>
                ...
            </li>
            <li>
               ...
            </li>
        </ul>
        <script>
            $(function() {
                //鼠标经过
                $('.nav>li').mouseover(function() {
                    //$(this)表示当前元素 this不用加引号
                    //show()显示元素
                    $(this).children('ul').show();
                });
    
                //鼠标离开
                $('.nav>li').mouseout(function() {
                    $(this).children('ul').hide();
                });
            })
        </script>
    </body>
    

    兄弟举例2:

    <body>
        <ol>
            <p>111</p>
            <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. 兄弟元素 sinlings()除了自身元素之外的所有符号条件亲兄弟   若()中什么都不写表示除了自己的所有亲兄弟 
                $('ol .item').siblings('li').css('color', 'red');
                //nextAll()和nextAll()都不包括自己
                $('ol .item').prevAll().css('color', 'blue');
                $('ol .item').nextAll().css('color', 'green');
    
                //2. 第n个元素
                $('ul li:eq(2)').css('color', 'blue'); // 利用选择器的方式 选中ul的第三个li
                $('ul li').eq(2).css('color', 'red'); // 利用方法的方式 选中ul的第三个li
    
                //3. 判断是否有某个类名
                console.log($('div:first').hasClass('current'));//true
                console.log($('div:last').hasClass('current'));//falses
            })
        </script>
    </body>
    

    1.6 jQuery里的排他思想

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

    案例:淘宝服饰精品案例

    • 结构
    <body>
        <div class="wrapper">
            <ul id="left">
                <li><a href="#">女靴</a></li>
                <li><a href="#">雪地靴</a></li>
                <li><a href="#">冬裙</a></li>
                <li><a href="#">呢大衣</a></li>
                <li><a href="#">毛衣</a></li>
                <li><a href="#">棉服</a></li>
                <li><a href="#">女裤</a></li>
                <li><a href="#">羽绒服</a></li>
                <li><a href="#">牛仔裤</a></li>
            </ul>
            <div id="content">
                <div>
                    <a href="#"><img src="images/女靴.jpg" width="200" height="250" /></a>
                </div>
                <div>
                    <a href="#"><img src="images/雪地靴.jpg" width="200" height="250" /></a>
                </div>
                <div>
                    <a href="#"><img src="images/冬裙.jpg" width="200" height="250" /></a>
                </div>
                <div>
                    <a href="#"><img src="images/呢大衣.jpg" width="200" height="250" /></a>
                </div>
                <div>
                    <a href="#"><img src="images/毛衣.jpg" width="200" height="250" /></a>
                </div>
                <div>
                    <a href="#"><img src="images/棉服.jpg" width="200" height="250" /></a>
                </div>
                <div>
                    <a href="#"><img src="images/女裤.jpg" width="200" height="250" /></a>
                </div>
                <div>
                    <a href="#"><img src="images/羽绒服.jpg" width="200" height="250" /></a>
                </div>
                <div>
                    <a href="#"><img src="images/牛仔裤.jpg" width="200" height="250" /></a>
                </div>
    
            </div>
        </div>
    </body>
    
    • css和js
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
            font-size: 12px;
        }
        
        ul {
            list-style: none;
        }
        
        a {
            text-decoration: none;
        }
        
        .wrapper {
             250px;
            height: 248px;
            margin: 100px auto 0;
            border: 1px solid pink;
            border-right: 0;
            overflow: hidden;
        }
        
        #left,
        #content {
            float: left;
        }
        
        #left li {
            background: url(images/lili.jpg) repeat-x;
        }
        
        #left li a {
            display: block;
             48px;
            height: 27px;
            border-bottom: 1px solid pink;
            line-height: 27px;
            text-align: center;
            color: black;
        }
        
        #left li a:hover {
            background-image: url(images/abg.gif);
        }
        
        #content {
            border-left: 1px solid pink;
            border-right: 1px solid pink;
        }
    </style>
    <script src="jquery.min.js"></script>
    <script>
        $(function() {
            //1. 鼠标经过左侧的小li
            $('#left li').mouseover(function() {
                //2. 得到当前小li的索引号
                var index = $(this).index();
                console.log(index);
    
                //3. 让右侧盒子相应索引号的图片显示出来
                $('#content div').eq(index).show();
    
                //4. 让其他图片隐藏起来
                $('#content div').eq(index).siblings().hide();
            })
        })
    </script>
    
    • 备注:让元素display:none;隐藏之后,元素所占的空间也消失。

    //3. 让右侧盒子相应索引号的图片显示出来
    $('#content div').eq(index).show();
    
    //4. 让其他图片隐藏起来
    $('#content div').eq(index).siblings().hide();
    

    等效于

    $('#content div').eq(index).show().siblings().hide();
    
  • 相关阅读:
    Netty Java原生和Netty网络的API比较
    MYSQL登录函数(第3版本)
    利用MYSQL的函数实现用户登录功能,进出都是JSON(第二版)
    UC登录功能:商户需要创建的表
    利用MYSQL的函数实现用户登录功能,进出都是JSON(第一版)
    MYSQL存储过程实现用户登录
    FreeBsd网络性能优化方案sysctl
    利用飞儿云PHP框架自带的DNSPOD库做DDNS动态域名解析
    Linux根据MAC地址自动设置IP
    在KVM里装个pfSense
  • 原文地址:https://www.cnblogs.com/deer-cen/p/12346004.html
Copyright © 2011-2022 走看看