jQuery

目录

一、jQuery的基本介绍

1.1、概念

1.2、网站

1.3、外部文件

1.4、jQuery的函数方法

二、jQuery_选择器

2.1、jQuery函数的调用

2.2、jQuery的选择器

2.3、jQuery选择器特有的语法:

2.4、获取结果

三、jQuery_筛选器

3.1、jQuery筛选器的原理

3.2、jQuery的筛选器语法

四、jQuery_标签属性的操作

4.1、专门操作布尔属性

4.2、操作其他属性

五、jQuery_标签class选择器操作

六、jQuery_标签内容和数据的操作

七、jQuery_标签css样式的操作

八、jQuery_标签的占位

九、jQuery_ 隐式迭代

十、jQuery_循环遍历

十一、jQuery_ajax


一、jQuery的基本介绍

1.1、概念

jQuery是前端的一个类库,本质上是一个js文件,其中定义了很多的函数方法,通过导入jQuery文件,可以调用其中封装定义的函数

jQuery的操作的本质,还是js操作,只是将js操作定义封装成了函数程序,调用函数程序,本质上执行的仍然是js操作

当前实际项目中jQuery应用的并不多

1.2、网站

官网 https://jquery.com/

中文 https://jquery.cuishifeng.cn/

1.3、外部文件

jquery.js 原生的jQuery文件

要执行jQuery函数必须要导入 jQuery文件

1.4、jQuery的函数方法

$('条件').函数()

jQuery('条件').函数()

操作标签对象伪数组的函数方法

$.函数方法()

jQuery.函数方法()

操作的不是标签对象伪数组,给jQuery本身定义的函数方法

二、jQuery_选择器

2.1、jQuery函数的调用

导入外部js文件,通过关键词$或者jQuery来调用jQuery外部文件中的函数方法

2.2、jQuery的选择器

是jQuery获取标签对象的语法

$('条件')    jQuery('条件')

支持的条件:和querySelector一样支持所有html,css的语法形式

' 标签名称 '    ‘ #id ’    ' .class '    ' [属性="属性值"] '    ‘ ul>li ’    ' ul>li:first-child '   

' ul>li:nth-child(3) '

2.3、jQuery选择器特有的语法:

' ul>li:first '    获取li中的第一个

' ul>li:last '    获取li中的最后一个

' ul>li:eq(索引下标) '    从0开始,按照索引下标获取li标签

' ul>li:odd() '    按照奇数索引下标获取li标签,获取的是偶数个数的li标签

' ul>li:even() '  按照偶数索引下标获取li标签,获取的是奇数个数的li标签

2.4、获取结果

获取的是一个jQuery特有的伪数组,只支持jQuery的函数操作方法,不支持任何js的操作方法。

jQuery伪数组中存储的是js标签对象,通过jQuery伪数组[索引下标]可以获取一个独立的js标签对象,独立的js标签对象支持js的操作语法

js标签对象通过$()或者jQuery()包裹就转化为jQuery伪数组,支持jQuery的操作语法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="div1" class="div2" name="div3" index="div4">我是div标签</div>

    <ul>
        <li>我是第一个li标签</li>
        <li>我是第二个li标签</li>
        <li>我是第三个li标签</li>
        <li>我是第四个li标签</li>
        <li>我是第五个li标签</li>
        <li>我是第六个li标签</li>
        <li>我是第七个li标签</li>
        <li>我是第八个li标签</li>
        <li>我是第九个li标签</li>
        <li>我是第十个li标签</li>
    </ul>
    <!-- 引入jQuery文件 -->
    <script src="../jQuery.js"></script>
   
    <script>
        //通过关键词$和jQuery来调用jQuery外部文件中的函数

        // jQuery伪数组 不支持 js的操作语法
        console.log( $('div') );
        console.log( jQuery('div') );

        //jQuery伪数组[索引下标] 获取的是一个 js标签对象 
        console.log( jQuery('div')[0] ); 
        //和js中DOM操作,获取的标签对象完全一致
        console.log(document.querySelector('div'));

        //通过 jQuery伪数组[索引下标] 可以获取一个 独立的 js标签对象 
        // 支持 js的DOM操作语法
        jQuery('div')[0].style.color = 'red';
        $('div')[0].addEventListener('click' , function(){
             console.log(111);
        })

        // js标签对象 使用 $() 或者 jQuery() 包裹 
        // 转化为 jQuery 伪数组 
        console.log( $(document.querySelector('div')) );

    </script>

    <script>
        // 标签名称
        console.log( $('div') );

        // id属性
        console.log( $('#div1') );

        // class名称
        console.log( $('.div2') );

        // name属性值
        console.log( $('[name="div3"]') );

        // 自定义属性属性值
        console.log( $('[index="div4"]') );

        // css选择器
        console.log( $('ul>li') );
        console.log( $('ul>li:nth-child(3)') );

        // jQuery特有的选择器

        // 按照索引下标3 获取 第四个li标签
        console.log( $('ul>li:eq(4)') );

        // 按照 奇数索引下标 获取 偶数个li标签
        console.log( $('ul>li:odd()') );

        // 按照 偶数索引下标 获取 奇数个li标签
        console.log( $('ul>li:even()') );

        // 获取 第一个 最后一个 li
        console.log( $('ul>li:first()') );
        console.log( $('ul>li:last()') );
    </script>

</body>
</html>

三、jQuery_筛选器

在jQuery选择器,获取的结果基础上,对jQuery选择器的获取结果,再次进行筛选

3.1、jQuery筛选器的原理

在jQuery编程中,有一种编程方式称为链式编程,选择器和筛选器配合可以完成的链式编程

3.2、jQuery的筛选器语法

$().first()    获取第一个标签对象

$().last()    获取最后一个标签对象

$().eq(索引下标)    按照索引下标查询

$().prev()    获取上一个标签对象

$().next()    获取下一个标签对象

$().prevAll()    获取上所有标签对象

$().nextAll()    获取下所有标签对象

$().siblings()    获取所有兄弟标签对象

$().parent()    获取直接父级标签对象

$().parents()    获取所有父级标签对象

$().find(条件)    按照条件查询

$().indenx()    获取标签对象的索引下标

$().end()    返回上一个操作对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <ul>
        <li>我是第一个li</li>
        <li>我是第二个li</li>
        <li>我是第三个li</li>
        <li>我是第四个li</li>
        <li>我是第五个li</li>
        <li>我是第六个li</li>
        <li>我是第七个li</li>
    </ul>

    <!-- 引入jQuery文件 -->
    <script src="../jQuery.js"></script>

    <script>
        // 获取第一个
        console.log( $('ul>li').first() );

        // 获取最后一个
        console.log( $('ul>li').last() );

        // 按照索引下标获取
        console.log( $('ul>li').eq(4) );

        // 上一个
        console.log( $('ul>li').eq(4).prev() );

        // 上所有
        console.log( $('ul>li').eq(4).prevAll() );

        // 下一个
        console.log( $('ul>li').eq(4).next() );

        // 下所有
        console.log( $('ul>li').eq(4).nextAll() );

        // 所有兄弟标签
        console.log( $('ul>li').eq(4).siblings() );

        // 直接父级
        console.log( $('ul>li').eq(4).parent() );

        // 所有父级
        console.log( $('ul>li').eq(4).parents() );

        // 索引下标
        console.log( $('ul>li').eq(4).index() );

        // 按照条件查询
        console.log( $('ul').find('li') );


        // 返回上一个操作的标签对象
        console.log( $('ul>li').eq(0).css('color' , 'red').parent().find('li').eq(1).css('color' , 'green').parent().find('li').eq(2).css('color' , 'blue').end().end().end() );                                       

    </script>

</body>
</html>

四、jQuery_标签属性的操作

4.1、专门操作布尔属性

$().prop( 属性 , 属性值 );    设定属性值

$().prop( 属性 );    获取属性值

$().removeProp( 属性 );    删除属性

4.2、操作其他属性

$().attr( 属性 , 属性值 );    设定属性值

$().attr( 属性 );    获取属性值

$().removeAttr(属性);    删除属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div name="我是div标签的name属性值" index="5">我是div标签</div>
    <input type="checkbox">

    <script src="../jQuery.js"></script>
    <script>
        // 设定 属性和属性值
        $('div').attr( 'id' , 'div1' );
        $('div').attr( 'class' , 'div2');

        // 获取 属性的属性值
        console.log( $('div').attr( 'name' ) );
        console.log( $('div').attr( 'index' ) );

        // 删除 属性
        $('div').removeAttr( 'name' );


        // 布尔属性的操作
        $('input').prop('checked' , true);

    </script>

</body>
</html>

五、jQuery_标签class选择器操作

jQuery操作语法

$().addClass()    新增

$().removeClass()    删除

$().hasClass()    判断有没有

        有         true

        没有     false

$().toggleClass()    切换

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div class="div1 div2 div3 div4 div5">我是div</div>

    <script src="../jQuery.js"></script>
    <script>
        // js操作语法
        const oDiv = document.querySelector('div');
        console.log( oDiv.classList );

        // jQuery的操作语法
        
        // 新增
        $('div').addClass('div6 div7');

        // 删除
        $('div').removeClass('div1 div7 div100');

        // 判断有没有
        console.log( $('div').hasClass('div2') );
        console.log( $('div').hasClass('div99') );

        // 切换
        $('div').toggleClass('div5');   

    </script>
</body>
</html>

六、jQuery_标签内容和数据的操作

js操作标签内容和数据

     标签对象.innerHTML

     标签对象.innerText

     标签对象.value

jQuery

     $().html();

     $().text();

     $().val();

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div>
        我是div标签
        <p>我是p标签</p>
        <span>我是span标签</span>
        <h1>我是h1标签</h1>
    </div>

    <input type="text"><br>
    <button>获取数据</button>

    <script src="../jQuery.js"></script>
    <script>
        // 获取标签内容
        console.log( $('div').html() );
        console.log( $('div').text() );

        // 点击获取数据
        $('button').click(()=>{
            console.log( $('input').val() );
        })

    </script>

</body>
</html>

七、jQuery_标签css样式的操作

语法形式1

一次只设定一个css属性和属性值

$().css('属性' , 属性值);

语法形式2

一次设定多个属性属性值

$().css({属性1:属性值1 , 属性2:属性值2 , 属性3:属

性值3... })

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div>我是div标签</div>

    <script src="../jQuery.js"></script>
    <script>

        // 只设定一个属性属性值
        //$('div').css('color' , 'red');
        //$('div').css('width' , '200px');
        //$('div').css('height' , 200);
        // 一次设定多个属性属性值
        $('div').css( { color : 'red' , width:200 , height:200 , background: 'pink' , fontSize : 50 } );

    </script>

</body>
</html>

八、jQuery_标签的占位

$().height()        $().width

内容 宽高

$().innerHeight()        $().innerWidth()

内容+padding

$().outerHeight()        $().outerWidth()

内容+padding+border

$().outerHeight(true)        $().outerWidth(true)

内容+padding+border+margin

display:none的标签仍然可以获取占位数据

$().offset()

获取标签和html页面的间距

执行结果是一个对象

left 属性存储左间距

top属性存储上间距

display:none的标签不能获取间距

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0 ;

        }

        div{
            width: 200px;
            height: 100px;
            padding:50px;
            border:5px solid #000;
            margin: 150px;
            background: pink;

            /* display: none ; */
        }

        h1{
            width: 600px;
            height: 600px;
            position: relative;
            margin: 200px;
            background: green;
        }

        p{
            width: 200px;
            height: 200px;
            background: blue;

            margin: 300px;

            display: none;
        }
        
    </style>
</head>
<body>
    <div></div>

    <h1>
        <p></p>        
    </h1>

    <script src="../jQuery.js"></script>
    <script>
        // 标签占位 内容
        console.log( $('div').width() );
        console.log( $('div').height() );

        // 标签占位 内容 + padding
        console.log( $('div').innerWidth() );
        console.log( $('div').innerHeight() );

        // 标签占位 内容 + padding + border
        console.log( $('div').outerWidth() );
        console.log( $('div').outerHeight() );

        // 标签占位 内容 + padding + border + margin
        console.log( $('div').outerWidth(true) );
        console.log( $('div').outerHeight(true) );

        // 和 定位父级的间距
        const oP = document.querySelector('p');
        console.log( oP.offsetTop );
        console.log( oP.offsetLeft );

        // 和 html页面的间距
        console.log( $('p').offset() );

    </script>

</body>
</html>

九、jQuery_ 隐式迭代

针对jQuery伪数组的设定操作

自动循环遍历伪数组中的每一个标签对象,对一个标签对象,执行需要的设定操作

针对jQuery伪数组的获取操作

只获取第一个标签的数据数值,不会获取每一个标签的数据数值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <ul>
        <li>我第一个li</li>
        <li>我第二个li</li>
        <li>我第三个li</li>
        <li>我第四个li</li>
        <li>我第五个li</li>
    </ul>

    <script src="../jQuery.js"></script>
    <script>
        // 本质是 循环遍历 jQuery伪数组中的 每一个标签对象 
        // 也就是 li标签对象 
        // 设定 每一个li标签对象的css样式的属性和属性值
        // 本质的设定方法 还是js的DOM操作 也就是 标签对象.style.color = 'red';
        $('ul>li').css( {color:'red'} );

        // 循环遍历伪数组 给每一个li标签都设定 点击事件
        $('ul>li').click( () => console.log(1111) );

        // 获取操作
        // 自会获取第一个标签对象的数据数值
        console.log( $('ul>li').html() );

    </script>

</body>
</html>

十、jQuery_循环遍历

$().each(function(参数1,参数2){})

参数1 索引下标

参数2 数组的数据数值

参数2是以js标签对象形式存储的标签对象,不支持jQuery的操作函数,支持js的DOM操作语法,可以$(参数2)转化伪jQuery伪数组,再使用jQuery函数执行操作

写在each中的return只会终止each的程序执行,不会终止函数中所有程序的执行,也就是each()之后,函数中程序的执行不会终止

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <ul>    
        <li>我是第一个li</li>
        <li>我是第二个li</li>
        <li>我是第三个li</li>
        <li>我是第四个li</li>
        <li>我是第五个li</li>
    </ul>

    <script src="../jQuery.js"></script>
    <script src="../tools.js"></script>

    <script>
        $('ul>li').css( { color: setColor() } );
        
        // 循环遍历基本语法
        $('ul>li').each( function( key , item ){
            // 参数2 以 js标签对象的形式 存储 标签对象
            // js标签对象 不支持 jQuery的函数操作方式
            console.log( item );

            // 自己手动循环遍历 jQuery伪数组 
            // 每次 给 li标签定义一个随机的字体颜色

            // $() 包裹 js标签对象 转化为 jQuery伪数组 
            // 使用 jQuery 函数方法来操作设定
            // $(item).css( {color: setColor() } );

            // 对 js标签对象 使用 js的DOM操作语法
            item.style.color = setColor() ;
        })

    </script>
</body>
</html>

十一、jQuery_ajax

在jQuery中,封装好了ajax请求,只需要我们调用函数执行就可以了

jQuery封装的ajax请求函数

$.get( 参数1, 参数2, 参数3 , 参数4)

参数1    请求的url地址

参数2    请求携带的参数,可以是对象形式,也可以是字符串形式

参数3    请求成功执行的函数程序

参数4    设定的响应体格式

只能执行get请求方式

$.post( 参数1,参数2,参数3,参数4 )

参数1   请求的url地址

参数2   请求携带的参数  可以是对象形式 也可以是字符串形式

参数3   请求成功 执行的函数程序

参数4   设定的 响应体格式

只能执行post请求方式

$.ajax( {以对象形式定义ajax请求的设置} )

url                       请求的地址

type/method       请求的方式

data                    携带的参数,可以是对象,可以是字符串

dataType            响应体格式

success              请求成功执行的函数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button name="get1">get1</button><br>
    <button name="post1">post1</button><br>
    <button name="ajax1">ajax1</button>

    <script src="../jQuery.js"></script>
    <script>
        // 给 button get1 添加点击事件
        $('[name="get1"]').click(function(){
            // 执行 ajax请求
            // $.get( 'http://localhost:8888/test/third' , 'name=张三&age=18' , function( response ){

            //     console.log( response );
            // });


            $.get( 'http://localhost:8888/test/third' , {name:'李四' , age:20} , function( response ){

                    console.log( response );

                });
        })

        // 给 button post1 添加点击事件
        $('[name="post1"]').click(function(){
            // 发送 post 请求方式
            $.post( 'http://localhost:8888/test/fourth' , {name:'王五' , age:50} , function( response ){
                console.log( response )
            })
        })

        // 给 button ajax1 添加点击事件
        $('[name="ajax1"]').click(function(){
            // 发送get请求
            $.ajax({
                url : 'http://localhost:8888/test/third' , 
                type : 'get' ,
                data : {name:'李四' , age:20} ,
                success : function( response ){
                    console.log( response );
                }
            })

            // 发送post请求
            $.ajax({
                url : 'http://localhost:8888/test/fourth' , 
                type : 'post' ,
                data : {name:'王五' , age:50} ,
                success : function( response ){
                    console.log( response );
                }
            })
        })

    </script>
</body>
</html>

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王昭没有君啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值