• day 54 jQuery, part-1


    上节内容回顾:

    1. 前情回顾
    
            1. DOM对象和BOM对象
                1. BOM 对象 --> window
                    location
                        location.href    
                        location.href="https://www.sogo.com"
                        location.reload
                    history
                    navigator
                2. DOM
                    1. document结构
                        1. 节点
                            1. 文档节点
                            2. 元素节点
                            3. 属性节点
                            4. 文本节点
                        2. 查找标签
                            1. 基本查找
                                1. ID查找 --> docuemnt.getElementById
                                2. 标签名查找 --> document.getElementsByTagName
                                3. class名查找 --> document.getElementsByClassName
                                // 4. 属性查找    --> document.getElementsByName
                            2. 层级查找
                                1. 上一级父标签 --> eleObj.parentElement
                                2. 儿子标签     --> eleObj.children
                                3. 第一个儿子   --> eleObj.firstElementChild
                                4. 最后一个儿子 --> eleObj.lastElementChild
                                5. 上一个兄弟标签 --> eleObj.previousElementSibling
                                5. 下一个兄弟标签  --> eleObj.nextElementSibling
                                
                        3. 创建标签
                            1. doucument.creatElement("div")  --> 要创建什么标签括号里面就写什么
                            2. 设置标签内容
                                1. eleObj.innerHTML = "<p>P标签</p>"
                                2. eleObj.innerText = "标签中间的文本"
                        
                            3. 标签属性
                                1. input标签相关
                                    1. inputEle.value  --> 获取input框的输入值
                                    2. inputEle.value = "请输入xxx" --> 设置input框的值
                                2. checkbox标签相关
                                    1. checkboxEle.checked --> 返回true或false
                                    2. checkboxEle.checked = true  --> 选中该checkbox
                                3. select标签相关
                                    1. selectObj.options  --> 获取所有的option选项 (数组)
                                    2. selecObj.selectedIndex  --> 获取选中的option的索引值
                                    3. selecObj.options.length=0 --> 快速清空option
            
            2. JS 事件
                常用事件
                    onclick
                    ondbclick
                    onload
                    blur
                    fouces
                    onchange (select联动示例)
                绑定事件方法
                    1. 在标签上通过特定的事件属性绑定事件
                        比如: <div onclick="f()">点我点我点我</div> 
                    2. 通过JS绑定事件
                        eleObj.onclick = function(){ ... }
                    3. 事件委托(利用事件冒泡)
                        找到父标签,给子标签绑定事件
                        <ul>li*100</ul>
                        
                        ulEle.onclick=function(){
                            event.target  --> 点击的那个标签对象
                            alert(event.target.innerText)
                        }
                        
        补充知识点
            1. 定时器示例
            2. addEventListener
    View Code

    补充的定时器:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>定时器示例</title>
    </head>
    <body>
    
    <input type="text" id="i1">
    
    <input type="button" value="开始" onclick="start();">
    <input type="button" value="结束" onclick="end();">
    
    <script>
        var t;   // undefined
       function f() {
            var dateObj = new Date();
        //  获取i1标签
        var i1Ele = document.getElementById("i1");
        i1Ele.value=dateObj.toLocaleString();
       }
        // 每隔一秒就执行一次f()
        function start() {
           f();
           // 只创建一个定时器,有定时器的话我就不创建了
            if (t === undefined) {
                t = setInterval(f, 1000);
            }
        }
    
        // 停止计时
        function end() {
            clearInterval(t);
            // t现在是什么?
            console.log("---> ", t)
            t = undefined;
        }
    
    </script>
    </body>
    </html>
    View Code
    <!--<!DOCTYPE html>-->
    <!--<html lang="zh-CN">-->
    <!--<head>-->
        <!--<meta charset="UTF-8">-->
        <!--<meta http-equiv="x-ua-compatible" content="IE=edge">-->
        <!--<title>定时器练习</title>-->
    <!--</head>-->
    <!--<body>-->
    
    <!--<input type="text" id="i1">-->
    
    <!--<input type="button" value="start" onclick="beginning();">-->
    <!--<input type="button" value="end" onclick="stop();">-->
    
    <!--<script>-->
        <!--var t;  //提前声明一个变量,为后续做铺垫-->
        <!--function f(){-->
            <!--var dateObj=new Date();-->
            <!--//获取i1标签-->
            <!--var i1Ele=document.getElementById("i1");-->
            <!--i1Ele.value=dateObj.toLocaleString();  //把dateObj这个当前-->
            <!--// 时间的赋值变量转换成字符串,toLacaleString它本身就是-->
            <!--// 把当前时间转换成字符串的意思-->
        <!--}-->
        <!--//每间隔一秒就执行一次f()-->
        <!--function beginning(){-->
            <!--f();-->
            <!--//只创建一个定时器,有就不创建,没有则创建t就是计时器-->
            <!--if (t===undefined){-->
                <!--t=setInterval(f,500);-->
    <!--按照指定周期来调用函数,这里在括号里面写函数名,以及自定义时间,-->
            <!--}-->
        <!--}-->
        <!--//停止计时-->
        <!--function stop(){-->
    <!--clearInterval是函数被调用,这里是终止定时器-->
            <!--clearInterval(t);-->
            <!--//t现在是什么?-->
            <!--console.log("-&ndash;&gt;",t)-->
            <!--t=undefined;-->
        <!--}-->
    
    <!--</script>-->
    <!--</body>-->
    <!--</html>-->
    View Code

    绑定多个事件:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>绑定多个事件</title>
    </head>
    <body>
    
    <input type="button" value="点我" id="i1">
    
    <script>
        function f1() {
            console.log(1);
        }
    
        function f2() {
             console.log(2);
        }
    
    
        var i1Ele = document.getElementById("i1");
    //    i1Ele.onclick=function () {
    //        // 点击之后要执行的函数
    //        f1();
    //    };
    //
    //    i1Ele.onclick=function () {
    //        f2();
    //    };
    
        // addEventListener, 绑定多个事件,不覆盖
        i1Ele.addEventListener("click", f1);
        i1Ele.addEventListener("click", f2);
    
    </script>
    </body>
    </html>
    View Code
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="x-ua-compatible" content="IE=edge">
        <title>绑定多个事件</title>
    </head>
    <body>
    <!--这里是设定一个按钮-->
    <input type="button" value="kick me" id="i1">
    
    <script>
        <!--定义两个函数-->
        function f1(){
            console.log(1);
        }
        
        function f2(){
            console.log(2);
        }
    //找到上面设定的那个按钮赋值给一个变量
        var i1Ele=document.getElementById("i1");
    //    i1Ele.onclick=function(){
    //        f1();   //这样写后加载的会覆盖前面先加载的,
    //    };
    //
    //    i1Ele.onclick=function(){
    //        f2();
    //    };
    
        //addEventListener, 绑定多个事件,不覆盖
    //    这里是把上面找到的变量,跟两个事件绑定到一起,这里就实现了同时绑定两个事件
    //    关键字是addEventListener它就是绑定多个事件用的
        i1Ele.addEventListener("click",f1);
        i1Ele.addEventListener("click",f2);
    
    </script>
    </body>
    </html>
    View Code

    今日内容开始:

    jQuery是什么?

    jQuery 是一个 JavaScript 库。

    jQuery 极大地简化了 JavaScript 编程。

    特点:write less,do more

    它本身是一个别人写好的类库---前端专用名词,类似于我们之前学的模块,都是别人封装好的底层 的东西,我们直接拿过来用就可以了.这个概念也类似于我们的函数,也是封装好的功能,直接拿到页面上引用即可,方便快捷

    jQuery怎么用,

    引用jQuery文件,有两种方式:      ===========>我们的jQuery文件必须要引用否则会报错,无法使用,不论是在html文件中还是在console里面都是一样的效果.

    一种是放到当前文件夹里面,以本地文件的方式引用,

    <script src="jquery-3.2.1.min.js"></script>
    <script>按照jQuery的规则写代码</script>

    另一种是cnd凡是引用,即在线引用,就是我们不需要下载到本地即可引用,

    <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
    <script>按照jQuery的规则写代码</script>

    既然这里涉及到了在线引用的话就会牵扯出来版本问题,关于版本:

    我们一般使用  3.x     

    jQuery.js     这个是完整版,

    jQuery.min.js  这个是压缩的完整版

    jQuery对象:

    通过jQuery包装DOM对象后产生的对象.jQuery对象是jQuery独有的,如果一个对象是jQuery对象,那么它就可以使用jQuery里面的方法,例如:$("#i1").html().  ===>这里的意思是获取id值为i1的元素的html代码,其中html()是jQuery的里面的方法.

    下面是基础语法:

    下面开始具体的使用方法:

    选择器:

    1,查找标签:固定的原则是   $("写入条件")     注:$后面是没有空格的

    1,基本查找:

    id 查找========> $("#id值")

    class名查找==================> $(".class名")

    标签名查找=================> $("标签名")

    查找所有元素==========>$("*")  ---一般不常用

    组合查找================>$("#id,className,tagName") 这里在查询条件里面添加了三个条件.这三个条件是彼此独立的,互不干涉,互不影响,只要在查询的时候满足其中的一个条件就可以拿到返回结果,他们之间是分开的,彼此互不干扰的.

    层级选择器:

    这里的x和y可以是任何的选择器

    所有后代查找(子子孙孙):$("x y")   

    所有儿子查找:$("x > y")  

    所有紧挨在x后面的y标签:$("x ~ y")

    基本筛选器:

    $("#d p")====>所有的id值为d的标签的所有的子孙标签为p标签的标签 

    :first  $("#d p:first")===>在所有的排标签的基础上找到第一个满足条件的p标签

    :last  $("#d p:last")===>在所有满足条件的p标签中找到最后一个

    :ep(index)  前面两个是找第一个和最后一个,这里是找指定位置的那一个,自定义索引值,注意是索引值,我们的索引都是从0开始的,$("#d p:eq(3)") ===>找到满足条件的p标签里面的索引值为3也就是第4个标签

    :gt(index) 索引值大于自定义索引值的标签 =====>$("#d p:gt(3)")所有满足条件的p标签里面索引值大于3的p标签

    :lt(index) 索引值小于自定义索引值的标签=========>$("#d p:lt(3)")所有满足条件的p标签里面索引值小于3的p标签

    :not(选择器) 所选择的标签里面不含有自定义选择器的标签===>$("#d p:not(.c1)") 所有满足条件的p标签里面不含有c1类属性的p标签    ======>$("#my-checkbox input:not(:checked)")还有一类写法,这样写的区别是not括号里面的内容,checked前有一个冒号,如果没有这个冒号就得不到想要的结果,这句话的意思是我们要找到id值为my-checkbox的下面的input标签,然后再找到的input标签里面找没有被选中的input标签,选中是checked,这就需要把冒号加在checked前面

    :even 所有偶数的标签 ==>$("#d p:event")所有满足条件的p标签里面索引为偶数的p标签

    :odd 所有基数的标签====>$("#d p:odd")所有满足条件的p标签里面索引为基数的p标签

    2,修改标签样式:

    原生js:

    获取样式类:document.getElementById("d1")

    添加样式类:classList.add(.cls)  ======>

    移除样式类:classList.remove(.cls)=======>

    jQuery修改标签样式:

    获取样式类:$("#d1")[0]  =====>获取id值为d1标签的样式类

    添加样式类:addClass();========>$("#d1").addClass("c2")  ====>给id值作为d1的标签添加类属性值c2

    移除样式类:removeClass();=======>$("#d1").removeClass("c3")==>给id值作为d1的标签删除类属性值为c3的属性.

    切换css类名,有就移除,没有就添加:toggleClass();========>$("#d1").toggleClass("c4")==>给id值为d1的标签做判断,如果有c4这个类属性那么就从重删除它,否则就把它添加上.

    jquery中的三种等号分别的意思:

    “=”:赋值运算,如下

    var a = 3;
    var b = "3"

    var a1=null
    var a2=undefined

    var a3=0
    var a4=false

    “==”:等于,如下(类型不同,也可能相等)
    a==b
    true(这里之所以返回true是因为a是数字,b是字符串,在判断是否相等时,内部自动做了字符串和数字之间的转换,把字符串转换成了数字之后再去比较的,所以就是相等的,就返回了true)

    a1==a2
    true(这里的null和undefined类型不同,但是用“==”就是相等的,他们在内部自动进行了类型转换,返回的就是true)


    a3==a4(这里的0和false类型不同,但是用“==”就是相等的,在内部把a3的赋值结果0转换成了false跟a4去做对比,或者是把a4的赋值结果false转换成了0跟a3去做对比,就返回了true)
    true

    “===”强等于,如下(类型必须相同,同时值也必须相同才相等)

    a===b
    false(很明显,数字跟字符串类型不同,返回false)

    a1===a2
    false(null和undefined类型也不同,返回false)

    a3===a4
    false(数字和bool值类型不同也无法相等,返回false)

     后期更新

    3,修改标签

    4,创建标签/添加标签/删除标签

    5,事件

    6,动画

    7,插件

    8,Ajax

  • 相关阅读:
    第九天 how can I 坚持
    第八天 how can I 坚持
    第七天 how can I 坚持
    第六天 how can I 坚持
    第五天 how can I 坚持
    第四天 how can I 坚持
    第三天 how can I坚持
    第二天 how can I 坚持
    raw文件系统 分类: 生活百科 2013-11-09 14:12 448人阅读 评论(0) 收藏
    初次接触:DirectDraw 分类: VC++ DirectX 2013-11-09 11:16 950人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/2012-dream/p/8177714.html
Copyright © 2020-2023  润新知