• 前端之JQuery


    前端之jQuery

    1.jQuery对象

    jQuery对象就是通过jQuery包装DOM对象后产生的对象。jQuery对象是 jQuery独有的。如果一个对象是 jQuery对象,那么它就可以使用jQuery里的方法:例如$(“#i1”).html()

    $("#i1").html()的意思是:获取id值为 i1的元素的html代码。其中 html()是jQuery里的方法

    相当于: document.getElementById("i1").innerHTML

    虽然jQuery对象是包装 DOM对象后产生的,但是 jQuery对象无法使用 DOM对象的任何方法,同理 DOM对象也没不能使用 jQuery里的方法

    一个约定,我们在声明一个jQuery对象变量的时候在变量名前面加上$:

    $('#i1').html();  //jQuery对象可以使用jQuery的方法
    $('#i1')[0].innerHTML;  //Dom对象使用Dom的方法
    

    使用注意事项:

    ​ 一定要先导入后再使用

    2.基础语法

    $(selector).action()
    
    //样式演变,原本应该
    jQuery();
    //为了简化
    $();
    

    3.查找标签

    基本选择器

    id选择器

    $('#id')
    

    标签选择器

    $('tagName')
    

    class选择器

    $('.className')
    

    配合使用

    $('div.c1') //找到有c1 class类的div标签
    

    所有元素选择器

    $('*')
    

    组合选择器

    $('#id,.className,tagName')
    

    层级选择器

    x和y可以为任意选择器

    $('x y') // x的所有后代y
    $('x>y') // x的所有儿子
    $('x+y') // 找到所有紧挨在x后面的y
    $('x~y') // x之后所有的兄弟y
    

    基本筛选器

    :first // 第一个
    :last // 最后一个
    :eq(index)// 索引等于index的那个元素
    :even // 匹配所有索引值为偶数的元素,从 0 开始计数
    :odd // 匹配所有索引值为奇数的元素,从 0 开始计数
    :gt(index)// 匹配所有大于给定索引值的元素
    :lt(index)// 匹配所有小于给定索引值的元素
    :not(元素选择器)// 移除所有满足not条件的标签
    :has(元素选择器)// 选取所有包含一个或多个标签在其内的标签(指的是从后代元素找)
    

    例子:

    $('div:has(h1)') //找到所有后代中有h1标签的div标签
    $('div:has(.c1)') //找到所有后代中有c1样式类的div标签
    $('li:not(.c1)') // 找到所有不包含c1样式类的li标签
    $('li:not(:has(a))') // 找到所有后代中不含a标签的li标签
    

    表单筛选器

    //针对表单内的标签
    $('input[type="text"]')
    //简化写法
    $(':text')
    
    
    // 找到所有被选中的checkbox
    $(':checkbox')  //注意select框中默认selected标签也会被找到
    
    $('input:checkbox')
    

    筛选器方法

    //避免#('input:first')太麻烦
    $('input').first()
    
    $('#id').next()
    $('#id').nextAll()
    $('#id').nextUntil('#i2')  //不包含i2
    
    
    $('#id').prev()  //取上面的标签
    $('#id').prevAll()
    $('#id').prevUntil('#i2')  
    
    
    $('#id').parent()
    $('#id').parents()  //查找当前元素的所有父辈元素
    $('#id').parentsUntil() //查找当前元素的所有的父辈元素,直到遇到匹配的那个元素为止
    
    
    $('#id').children(); //儿子们
    $('#id').siblings(); //兄弟们
    

    jQuery链式操作

    <div>
        <p>p1</p>
    	<p>p2</p>
    <div>
    
    $('div>p').first().addClass('c1').next().addClass('c2');
    
    //python代码诠释链式调用,其实就是在调用方法之后将对象再次返回
    

    查找

    搜索所有与指定表达式匹配的元素,这个函数是找出正在处理的元素的后代元素的好方法

    $('div').find('p')  // 等价于$('div p')
    

    筛选

    筛选出于指定表达式匹配的元素集合,这个方法用于缩小匹配的范围,用逗号分隔开多个表达式

    $('div').filter('.c1') //从结果集中过滤出有c1样式类的,等价于$('div.ci')
    

    4.操作标签

    样式操作

    addClass(); //添加指定的css类名
    removeClass();  //移除指定的css类名
    hasClass();  //判断样式存不存在
    toggleClass();  //切换css类名,如果有就移除,如果没有就添加
    

    jQuery操作模态框显隐(类添加隐藏类)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="jQuery-3.4.1.js"></script>
        <style>
            .cover {
                position: fixed;
                top: 0;
                left: 0;
                right: 0;
                bottom: 0;
                background-color: rgba(128,128,128,0.3);
                z-index: 999;
            }
            .modal {
                position: fixed;
                top: 50%;
                left: 50%;
                 400px;
                height: 200px;
                margin-top: -100px;
                margin-left: -200px;
                z-index: 1000;
                background-color: white;
            }
            .hide {
                display: none;
            }
        </style>
    </head>
    <body>
    <button id="show">出来吧</button>
    
    
    <div class="cover hide"></div>
    <div class="modal hide">
        <p>username:<input type="text"></p>
        <p>password:<input type="text"></p>
        <button id="cancel">消失吧</button>
    </div>
    
    
    <script>
        let b1Ele = $('#show')[0];
        let $cEle = $('.cover');
        let $mEle = $('.modal');
        let b2Ele = $('#cancel')[0];
        b1Ele.onclick = function () {
            $cEle.removeClass('hide');
            $mEle.removeClass('hide');
        };
        b2Ele.onclick = function () {
            $cEle.addClass('hide');
            $mEle.addClass('hide');
        }
    </script>
    </body>
    </html>
    

    5.位置操作

    offset()  //获取匹配元素在当前窗口的相对偏移
    position()  //获取匹配元素相对父元素的偏移
    scrollTop()  //获取匹配元素相对滚动条顶部的偏移
    scrollLeft()  //获取匹配元素相对滚动条左侧的偏移
    

    .offset()方法允许我们检索一个元素相对于文档(document)的当前位置

    和 .position()的差别在于: .position()是相对于相对于父级元素的位移

    6.尺寸

    height()  //文本
    width()  
    innerHeight()  //文本+padding
    outerHeight()  //文本+padding+border
    outerWidth()
    

    7.文本操作

    HTML代码

    html()  //取得第一个匹配元素的html内容
    html(val)  //设置所有匹配元素的html内容
    

    文本值

    text()  //取得所有匹配元素的内容
    text(val)  //设置所有匹配元素的内容
    

    val()  //取得第一个匹配元素的当前值
    val(val)  //设置所有匹配元素的值
    val([val1,val2])  //设置多选的checkbox、多选select的值
    
  • 相关阅读:
    <<C++ Primer>> 第三章 字符串, 向量和数组 术语表
    <<C++ Primer>> 第二章 变量和基本类型 术语表
    <<C++ Primer>> 第一章 开始 术语表
    PAT A1077 Kuchiguse (20)
    PAT A1035 Password (20)
    PAT A1005 Spell It Right (20)
    <<C++ Primer>> 术语表 (总) (待补充)
    PAT A1001 A+B Format (20 分)
    PAT B1048 数字加密 (20)
    Protocol
  • 原文地址:https://www.cnblogs.com/yanminggang/p/10970057.html
Copyright © 2020-2023  润新知