欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JQuery笔记2-选择器

程序员文章站 2022-07-13 11:59:35
...


JQ中的选择器

JQ中的选择器和C3中的选择器非常相似,可以说如果会C3的选择器,那么就会JQ的选择器.例如:JQ中获取元素的方式:通过各种选择器来获取元素

  1. 根据id—$(’#id’) ----- 一个元素
  2. 根据标签名—$(‘标签名’)----多个元素
  3. 根据类样式的名字(类选择器)---- $(’.class’)–多个元素

JQ中常用的几个方法

  • .html()方法,设置标签中间显示其他标签及内容,类似于innerHTML
  • .text()方法,设置标签中间显示的文本内容,类似于innerText
  • .val()方法.设置input标签中value的值,类似于value
  • .css()方法,.设置元素的样式,类似于style

JQ中的.css()方法

JQ操作样式就要用.css()方法,而操作样式有三种方式:

  1. 当里面只写两个参数:$('div').css('backgroundColor','red')
  2. 键值对:$('div').css({width:'20px',height:'30px'})
  3. 链式编程:$('div').css('width','20px').css('height','30px')

三种方式的区别:只有两个参数这种写方法需要没设置一个样式就需要多些一行代码,键值对的方式和写css中的style就特别像了,链式编程就体现了JQ的特点.

JQ中的其他主要选择器

  1. 多条件选择器(同时选择多个元素):$('span, p, li, div')
  2. 奇数偶数选择器(选择第奇数个或第偶数个,exen为偶数,odd为奇数,但是是从索引0开始的):$('#uu>li:even'),$('#uu>li:odd')
  3. 层级选择器
    3.1 后代选择器(所有后代包括子孙):$('#dv p')
    3.2 子元素选择器(直接的后代):$('#dv>p')
    3.3 获取的是div后面的第一个p标签元素$("#dv+p")
    3.4 获取的是div后面所有直接的兄弟元素p标签元素$("#dv~p")
  4. 标签+类选择器:$('li.cls')
  5. 索引选择器(等于4,大于4,小于4):$('#uu>li:eq(4)'),$('#uu>li:gt(4)'),$('#uu>li:lt(4)')
  6. id选择器:$('#btn')
  7. 类选择器:$('.btn')
  8. 标签选择器:$('p')

其他常用的函数

  1. 获取当前元素的所有兄弟元素:siblings()
  2. 获取子元素(一层):children('标签名')
  3. 查找当前元素下的元素:find('标签名')
  4. 显示隐藏盒子:show(),hide()
  5. 显示盒子淡入:fadeIn()
  6. 隐藏盒子淡出:fadeOut()

几个小demo

  1. 精品展示:
  2. 好友面板切换
  3. 下拉菜单
  4. 手风琴

这里只展示两个:好友面板切换:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        #uu li {
            margin-bottom: 10px;
            background-color: Orange;
            font-size: 20px;
            font-weight: bolder;
            cursor: pointer;
        }
        #uu li ul {
            list-style-type: none;
            margin: 0;
            padding: 0;

        }

        #uu li ul li {
            background-color: pink;
        }
    </style>
    <script src="../jquery-1.12.2.js"></script>
    <script>
        $(function () {
            //找到id为ul的下面的li里面的ul里面的li全部隐藏
            $("#uu>li>ul>li").hide();
            //找到id为ul的直接的子元素li,注册点击事件
            $('#uu>li').click(function () {
                //兄弟li中的ul下面的li全部隐藏
                $(this).siblings('li').children('ul').find('li').hide(250);
                //当前点击的li中的ul里面的li全部显示
                $(this).children('ul').find('li').fadeIn(500);
            });
        });
    </script>
</head>
<body>
<!--box-shadow: 0px 0px 4px 3px inset rgba(255, 0, 0, 0.3) 如果不指定inset 默认阴影向外-->
<div style=" width:200px; height:500px; border:1px solid red; box-shadow: 0px 0px 4px 3px rgba(255, 0, 0, 0.3)">
    <ul id="uu" style=" list-style-type:none; margin:0; padding:0; text-align:center;">
        <li>
            幼儿园同学
            <ul>
                <li>鼻涕虫</li>
                <li>爱哭鬼</li>
                <li>张大胆</li>
            </ul>
        </li>
        <li>小学同学
            <ul>
                <li>张三丰</li>
                <li>张无忌</li>
                <li>乔布斯</li>
            </ul>
        </li>
        <li>
            初中同学
            <ul>
                <li>盖茨</li>
                <li>川普</li>
                <li>奥巴马</li>
            </ul>
        </li>
    </ul>
</div>
</body>
</html>

下拉菜单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
        }

        ul {
            list-style: none;
        }

        .wrap {
            width: 330px;
            height: 30px;
            margin: 100px auto 0;
            padding-left: 10px;
            background-color: purple;
        }

        .wrap li{
            background-color: yellow;
        }

        .wrap > ul > li {
            float: left;
            margin-right: 10px;
            position: relative;
        }

        .wrap a {
            display: block;
            height: 30px;
            width: 100px;
            text-decoration: none;
            color: #000;
            line-height: 30px;
            text-align: center;
        }

        .wrap li ul {
            background-color: yellow;
            position: absolute;
            top: 30px;
            display: none;
        }

    </style>
    <script src="../../jquery-1.12.2.js"></script>
    <script>
        $(function () {
            //获取.wrap下面的ul中的li,注册鼠标进入和离开的事件
            $('.wrap>ul>li').mouseover(function () {
                //鼠标进入
                $(this).children("ul").show();
                var ul = $(this).children("ul");

                ul.children('li').children('a').click(function () {
                    var x = $(this).text();
                    console.log(x === '乔峰');
                });
            });
            $('.wrap>ul>li').mouseout(function () {
                $(this).children("ul").hide();
            });
        })
    </script>
</head>
<body>
<div class="wrap">
    <ul>
        <li>
            <a href="javascript:void(0);">帅哥系列</a>
            <ul>
                <li><a href="javascript:void(0);">乔峰</a></li>
                <li><a href="javascript:void(0);">张无忌</a></li>
                <li><a href="javascript:void(0);">郭靖</a></li>
            </ul>
        </li>
        <li>
            <a href="javascript:void(0);">美女系列</a>
            <ul>
                <li><a href="javascript:void(0);">柳 岩</a></li>
                <li><a href="javascript:void(0);">杨 幂</a></li>
                <li><a href="javascript:void(0);">萝 拉</a></li>
            </ul>
        </li>
        <li>
            <a href="javascript:void(0);">渣男妇腐女</a>
            <ul>
                <li><a href="javascript:void(0);">凤姐</a></li>
                <li><a href="javascript:void(0);">助教</a></li>
                <li><a href="javascript:void(0);">导师</a></li>
            </ul>
        </li>
    </ul>
</div>
</body>
</html>
相关标签: JQ JQ jquery