• jQuery入门


    简介

    What is jQuery?

    jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers. With a combination of versatility and extensibility, jQuery has changed the way that millions of people write JavaScript.

    jQuery是一个快 轻量 丰富的JavaScript库,主要封装了四块内容,分别是:html遍历操作,事件,动画 和Ajax.  并且使用简单,丰富和易于扩展。

     官网:www.jQuery.com

                www.bootcdn.cn 下载jQuery

    jQuery的基本使用

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <div class="box">weather</div>
    <script src="jQuery/js/jquery.js">
    </script>
    <script>
        console.log($('.box'))    写选择器,返回的结果是一个jQuery对象也就是一个伪数组,可以通过索引直接转换成js节点对象。
    </script>
    </body>
    </html>



    js对象转jquery对象
    var oBox = document.getElementById('box');
    console.log($(oBox));
     

     jQuery选择器

    1.基本选择器

       ID选择器(#)作用:选择id为指定的第一个元素

       类选择器(.)作用:选择具有class所有类名的元素

       标签选择器(element) 作用:选择标签名为指定值的所有元素

       通配符选择器(*) 作用:选择器所有元素

    2.高级选择器

      后代选择器(空格表示)选择所有的后代元素

      子代选择器(>) 选择所有的子代元素

    3.属性选择器

      例如:input[type=text]

    4.基本过滤选择器

      :eq(index)  index是从0开始的一个数字

      :gt(index) 选择序号大于index的元素

      :lt(index) 选择器小于index的元素

      :odd 选择所有序号为奇数的元素

      :even 选择所有序号为偶数的元素

      :first 选择匹配的第一个元素

      :last 选择匹配的最后一个元素

    eq的例子:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <div class="box">
    <p>weather</p>
    <ul>
        <li>
            <p>sunny</p>
        </li>
        <li>
            rainny
        </li>
    </ul>
    </div>
    <script src="jQuery/js/jquery.js"></script>
    <script>
    $('.box ul li:eq(1)').css({'color':'red','fontSize':20})
    </script>
    </body>
    </html>

    筛选方法

       find(selector) 查找指定元素的所有后代元素(包括子子孙孙)用法:$('#box').find('p')

       children 查找指定元素的子元素(亲儿子)

       siblings() 查找所有兄弟元素(不包括自己)

       parent() 查找父元素 

       eq(index) 查找指定元素的第index元素,index是索引

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <div class="box">
    <p>weather</p>
    <ul>
        <li>
            <p>sunny</p>
        </li>
        <li>
            rainny
        </li>
    </ul>
    </div>
    <script src="jQuery/js/jquery.js"></script>
    <script>
    // $('.box ul li:eq(1)').css({'color':'red','fontSize':20})   通过jquery封装的css设置样式
        console.log($('.box').find('p,ul'));        查询后代
        console.log($('.box').children('p'));       查询子代
        console.log($('.box').parent());            查询父元素
        console.log($('.box ul li').eq(1));         eq按照索引查询
        console.log($('.box').siblings())           查询兄弟元素,除了自己以外
    </script>
    </body>
    </html>

    选项卡js vs jQuery

    js基于排他思想实现选项卡
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <button>热门</button>
    <button>电视影音</button>
    <button>电脑</button>
    <button>家具</button>
    
    <script src="jQuery/js/jquery.js"></script>
    <script>
        var btns = document.querySelectorAll('button');
        for (var i = 0; i < btns.length;i++){
            btns[i].onclick = function () {
                for (var j=0;j<btns.length;j++){
                btns[j].style.color = 'black';
            }
                this.style.color = 'red';
            }
        }
    
    </script>
    </body>
    </html>
    基于jQuery链式编程实现选项卡
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <button>热门</button>
    <button>电视影音</button>
    <button>电脑</button>
    <button>家具</button>
    
    <script src="jQuery/js/jquery.js"></script>
    <script>
     
        $('button').click(function () {
            $(this).css('color','red').siblings().css('color','black')
        })
    
    </script>
    </body>
    </html>

    动画

      1.普通动画

       show() 无参数表示让指定的元素直接显示出来

       hide()

    show和hide的实例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .box{
                width: 200px;
                height: 200px;
                background-color: red;
                display: none;
            }
        </style>
    </head>
    <body>
    <button>显示</button>
    <div class="box"></div>
    <script src="jQuery/js/jquery.js"></script>
    <script>
        $('button').mouseenter(
            function () {
               $('.box').stop.show(2000);
            })
        $('button').mouseleave(
            function () {
               $('.box').stop.hide(2000);
            }
        )
    </script>
    </body>
    </html>
    ps:先停止动画 在开启动画



    例子:toggle相当于show和hide操作
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
    .box{
    200px;
    height: 200px;
    background-color: red;
    display: none;
    }
    </style>
    </head>
    <body>
    <button>显示</button>
    <div class="box"></div>
    <script src="jQuery/js/jquery.js"></script>
    <script>

    $('button').click(function () {
    $('.box').stop().toggle(2000)
    })
    </script>
    </body>
    </html>
    ps:toggle里面可以加参数,表示动画执行之后执行其他的。

    2.卷帘门效果

    slideDown() 下拉

    slideUp() 上卷

    slideToggle()

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .box{
                width: 200px;
                height: 200px;
                background-color: red;
                display: none;
            }
        </style>
    </head>
    <body>
    <button>显示</button>
    <div class="box"></div>
    <script src="jQuery/js/jquery.js"></script>
    <script>
        $('button').mouseenter(
            function () {
               $('.box').stop().slideDown(2000);
            })
        $('button').mouseleave(
            function () {
               $('.box').stop().slideUp(2000);
            }
        )
    
    </script>
    </body>
    </html>

    3.淡入淡出

    fadeIn()让元素淡淡的进入视线

    fadeOut() 让元素渐渐淡出视线

    fadeToggle() 改变透明度

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .box{
                width: 200px;
                height: 200px;
                background-color: red;
                display: none;
            }
        </style>
    </head>
    <body>
    <button>显示</button>
    <div class="box"></div>
    <script src="jQuery/js/jquery.js"></script>
    <script>
        $('button').mouseenter(
            function () {
               $('.box').stop().fadeIn(2000);
            })
        $('button').mouseleave(
            function () {
               $('.box').stop().fadeOut(2000);
            }
        )
       
    </script>
    </body>
    </html>

    常见事件

       click 鼠标单击事件

       dblclick 双击事件

       mousedown()/up() 鼠标按下弹起事件

       mousemove() 鼠标移动事件

       mouseover()/out() 鼠标移入移除事件

       mouseenter()/leave()鼠标进入离开事件

       focus()/blur() 鼠标聚焦失焦事件

       keydown()/up 键盘按键按下/弹起触发

    表单事件

       change() 表单元素发生 改变触发事件

       select() 文本元素发生时触发事件

       submit()

    jQuery对值的操作

    html() innerHTML实现,对文本和标签进行渲染

    text() innerText实现,只对文本进行渲染

    val() value的实现,只对标签中有的value属性有效,比如input等

    html设置值和获取值
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .box{
                width: 200px;
                height: 200px;
                background-color: red;
                display: none;
            }
        </style>
    </head>
    <body>
    <button>显示</button>
    <div class="box"></div>
    <script src="jQuery/js/jquery.js"></script>
    <script>
        var name = '百度一下';
        $('button').mouseenter(
            function () {
               $('.box').stop().fadeIn(1000,function (){
                   $(this).html(`<a href="#">${name}</a>`)
               })
                console.log($(this).html());
            });
        $('button').mouseleave(
            function () {
               $('.box').stop().fadeOut(2000);
            }
        )
     
    </script>
    </body>
    </html>

    html标签属性操作

      attr(key,value) 设置单个属性值

      attr({key1:value,key2:value2}) 对标签设置多个属性值

      attr(key) 获取属性值

      removeAttr() 删除某个属性

       ps: 改操作只对标签中的属性操作

    属性 增删查操作
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .box{
                width: 200px;
                height: 200px;
                background-color: red;
                display: none;
            }
        </style>
    </head>
    <body>
    <button>显示</button>
    <div class="box"></div>
    <script src="jQuery/js/jquery.js"></script>
    <script>
        console.log($('.box').attr('class'));
        $('.box').attr({id:'box',title:'boxx'});
        setTimeout(function () {
            $('.box').removeAttr('title')
        },4000);
    
    
    </script>
    </body>
    </html>

    对类操作

    addClass

    removeClass

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .box{
                width: 200px;
                height: 200px;
                background-color: red;
            }
            .active{
                background-color: green;
            }
        </style>
    </head>
    <body>
    <div class="box"></div>
    <script src="jQuery/js/jquery.js"></script>
    <script>
        $('.box').mouseenter(function () {
          $(this).addClass('active')
        })
    
         $('.box').mouseleave(function () {
          $(this).removeClass('active')
        })
    </script>
    </body>
    </html>

    DOM操作

    父.append(子)

    子.appendTo(父)   插入操作,插入到子元素的最后一个父子之间

    prepend

    prependTo   插入操作,插入到父元素中的第一个元素

    兄弟.after(要插入的兄弟)

    要插入的兄弟.insertAfter(兄弟)

    before

    insertBefore

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <div id="box">
        <div class="item">weather</div>
    </div>
    <script src="jQuery/js/jquery.js"></script>
    <script>
        <!--append and appendTo-->
        $('#box').append('<p>hello</p>')
        $('#box').append('<p>hello2</p>')
        $('<a href="#">百度</a>').appendTo('#box')
    
        
        $('.item').after('<p>123</p>');
        $('.item').before('<p>345</p>');
    
    
    </script>
    </body>
    </html>

    $(select).replaceWith(content); 替换

    replaceAll 替换所有

    remove() 删除节点后,事件也会删除

    detach() 删除节点后,事件会保留

    empty() 清空选中的所有子元素

    替换和清空的实例
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <div id="box">
        <div class="item">weather</div>
    </div>
    
    <script src="jQuery/js/jquery.js"></script>
    <script>
        <!--append and appendTo-->
     
    
        $('.item').replaceWith('<span>dsb</span>')
        $('#box').empty()
    </script>
    </body>
    </html>

     ajax调用接口数据

    接口来自和风天气
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <div></div>
    <script src="jQuery/js/jquery.js"></script>
    <script>
        $.ajax(
            {url:'https://free-api.heweather.net/s6/weather/now?location=beijing&key=yourkey',
            method:'get',
            success:function(res){
            console.log(res.HeWeather6[0].now.cond_txt);
            var weather = res.HeWeather6[0].now.cond_txt;
            $('div').html(`今天今天状况: ${weather}`)
        },
             error:function (err) {
                 console.log(err)
             }
            }
        )
    
    </script>
    </body>
    </html>
    We are down, but not beaten. tested but not defeated.
  • 相关阅读:
    selenium之css定位
    selenium之Xpath定位
    配置JAVA_HOME踩得坑 。。
    linux 怎么查看系统的环境变量 与设置jdk 系统环境变量
    jenkins添加环境变量 ,win 10的 环境变量如下,win7 就是不加也可以运行,不报 “python 不是内部命令 ” 的错误。
    win7 bat copy 一个文件 到另外的文件夹内,路径得用引号哦
    路由器原理
    mven入门
    局域网内和局域网间的通信
    详解DNS域名解析全过程
  • 原文地址:https://www.cnblogs.com/guniang/p/11171270.html
Copyright © 2020-2023  润新知