天天看点

传智黑马前端笔记 day04 jquery

回顾:

js:

    组成部分:

        ECMAScript  基本语法

        BOM         5个浏览器对象

        DOM            一大堆对象,标签

1.ECMAScript

变量声明 var 变量名=初始化值;

数据类型:

        原始类型

            Undefined Null

            String Number Boolean:伪对象

            通过typeof运算符可以判断出属于那种原始类型

                typeof 值|变量

        引用类型

            Boolean Number

            String 

                常用属性:length

                常用方法:

                    substring

                    split

                    replace

                    var ss=s2.replace(/[\,\*\%\#\.\&\^]+/g," ");//加了g才是全局替换

                    alert(ss);//1 2 3 4 5 6 7 8 9 10

            Array

                常用属性:length

                注意:

                    array长度可以变化

                    array可以存放任意值

            Math

            Date

            RegExp    常用方法:test()

                直接量语法:

                    /正则表达式/     

                    var s2="1,2,3,4,5,6*7%.8##9%^&10";

                    var a2=s2.split(/[\,\*\%\#\.\&\^]+/);//都要转义  开头结尾//即可

                    alert(a2.join(" "))//1 2 3 4 5 6 7 8 9 10

            全局

                decodeURI 解码

                eval 计算字符串,解析成js代码执行

运算符:

    关系运算符

    等性运算符 ==  ===

语句:

    选择 循环

BOM(浏览器对象模型)

    window:窗口

        常用属性:

            获取其他的四个对象

                window.location....

        常用方法:

            消息框

                alert confirm prompt

            定时器

                setInterval 周期

                setTimeout 延迟

            打开关闭 

                open close

    location:定位

        location.href:设置或者获取url

    history:历史

        go()

///

事件和函数

    掌握的事件:

        焦点:

            onfocus

            onblur

        表单事件

            onsubmit

            onchange 改变

        页面或者元素加载

            onload 

                最常用的方式:

                    window.οnlοad=function(){};

        单击

            onclick

    函数:

        方式1:

            function 函数名(参数列表){

                函数体

            }

        方式2:

            匿名函数

            例如:window.οnlοad=function(){};

事件绑定函数:

    方式1:通过元素的事件属性

        <xxx onxxx="函数名(参数)">  若参数为this:是将当前的dom对象传递给了函数

    方式2:派发事件

        dom对象.onxxx=function(){};

///

DOM(文档对象模型)

    就是我们的html代码加载到内存中会形成一棵document树

    节点:

        文档节点 document

        元素节点 element

        属性节点 attribute

        文本节点 text

    获取一个元素节点:通过document获取

        四个

    操作元素的属性

        dom对象.属性

    操作元素的标签体

        dom对象.innerHTML

以前通过js获取对象的时候

    var obj=document.getElementById("id");

    funtion getId(id){

        return document.getElementById("id");

    }

    $("选择器")===>获取元素

//

js类库:

    对常用的方法和对象进行封装,方便我们使用.

jQuery:

案例1-弹出广告

技术:

    定时器

    jQuery

///

jquery和html的整合

    jquery是单独的js文件

        通过script标签的src属性导入即可

获取一个jquery对象

    $("选择器")  或者 jQuery("选择器")

dom对象和jquery对象之间的转换

    dom对象===>jquery对象    

        $(dom对象)

    jquery对象===>dom对象

        方式1:

            jquery对象[index]

        方式2:

            jquery对象.get(index)

页面加载:

    js:

        window.οnlοad=function(){}//在一个页面中只能使用一次

    jquery 在一个页面中可以使用多次

        方式1:

            $(function(){...})

        方式2:

            $(document).ready(function(){});

派发事件:

    $("选择器").click(function(){...});

    等价于 原生js中

        dom对象.οnclick=function(){....}

    掌握事件://on都去掉

        focus

        blur

        submit

        change

        click

jquery中效果:

    隐藏或展示

        show(毫秒数) hide(毫秒数)

    滑入或滑出

        slideDown(毫秒数):向下滑入

        slideUp(毫秒数):向上滑出

    淡入或淡出

        fadeIn(int):淡入

        fadeOut(int):淡出

/

案例1-步骤分析

    1.页面加载成功之后$(function(){...}) 开始一个定时器 setTimeout();

    2.编写展示广告方法 

        获取div,然后调用效果方法

        设置另一个定时器 隐藏

    3.编写隐藏广告的方法

        获取div,然后调用效果方法

选择器总结:

    基本选择器★

        $("#id值")  $(".class值")  $("标签名")  

        了解:$("*") 匹配所有选择器

        理解:获取多个选择器 用逗号隔开

            $("#id值,.class值")

    层次选择器 ★

        a b:a的所有b后代

        a>b:a的所有b孩子(只有孩子没有孙子  即:只有子元素 没有子元素的子元素)

        a+b:a的下一个兄弟(大弟弟)

        a~b:a的所有弟弟

    基本过滤选择器:★

        :frist 第一个

        :last 最后一个

        :odd  索引奇数

        :even 索引偶数

        :eq(index) 指定索引

        :gt(index) >

        :lt(index) <

    内容过滤:

        :has("选择器"):包含指定选择器的元素   (父元素)

    可见过滤:

        :hidden   在页面不展示元素 一般指 input type="hidden" 和 样式中display:none

        :visible 

    属性过滤器:★

        [属性名]  //有此属性

        [属性名="值"]  //有此属性且值指定

    表单过滤:

        :input  所有的表单子标签  input select textarea button

        input  仅input标签

        :text 筛选所有文本框

        :password  筛选所有密码框等等

案例2-隔行换色

技术分析:

    1.页面加载成功

    2.获取所有的奇数行 添加一个css

    3.获取所有的偶数行 添加一个css

属性和css操作总结:

    对属性的操作:

        attr():设置或者获取元素的属性

            方式1:获取

                attr("属性名称")

            方式2:设置一个属性   (添加一个属性)

                attr("属性名称","值");

            方式3:设置多个属性  json

                attr({

                    "属性1":"值1",

                    "属性2":"值2"

                })

        removeAttr("属性名称"):移除指定属性

    //添加class属性的时候 

    //    attr("class","值");  有种更方便的操作class属性的方法 即是对class的进一步包装

    addClass("指定的样式值"); 相当于 attr("class","指定的样式值");

    removeClass("指定的样式值");

    对css操作:操作元素的style属性

        css():获取或者设置css样式

            方式1:获取    

                css("属性名")

            方式2:设置一个属性

                css("属性名","值")

            方式3:设置多个

                css({

                    "属性1":"值1",

                    "属性2":"值2"

                });

    获取元素的尺寸:

        width()

        height()

/

案例3-全选或者全不选

需求:

    就是将内容中复选框的选中状态和最上面的复选框状态保持一致

步骤分析:

    1.确定事件 复选框的单击事件

    2.函数中

        a.获取该复选框的选中状态  attr(获取不了checked属性 这是bug)|prop

        b.获取所有的复选框修改他们的状态

注意:

    若jquery版本>1.6 统一使用 prop操作元素的属性

/

/

/

/

案例4-省市联动

步骤分析:

    1.确定事件 省份的下拉选变化的时候  change

    2.编写函数

        a.获取当前省份的value值

        b.通过数组获取该省下的所有市 返回值:数组

        c.遍历数组,拼装成option元素 追加到市下拉选即可

        注意:每次改变的时候初始化市的值.

///

技术:

    遍历数组

        数组.each(function(){});

        $.each(遍历数组,function(){});

    注意:

        each的function中可以加两个参数 index和dom

            index是当前遍历的索引值

            dom指代的是当前遍历的dom对象(开发中一般使用this即可)

    //

    设置或者获取value属性

        jquery对象.val():获取

        jquery对象.val("...."):设置

    /

    设置获取获取标签体的内容 

        html()

        text()

        xxxxx():获取标签体的内容

        xxxxx("....."):设置标签体的内容

            设置的区别:

                html:会把字符串解析

                text:只做为普通的字符串

            获取的区别:

                html:获取的html源码

                text:获取只是页面展示的内容

    //

创建一个元素: $("<标签></标签>")

///

文档操作:

    内部插入

        a.append(c):将c插入到a的内部(标签体)后面

        a.prepend(c):将c插入到a的内部的前面

        appendTo     //a.appendTo(c)  将a插入到c的内部后面  顺序反了

        prependTo

    外部插入

        a.after(c):将c放到a的后面

        a.before(c):将c放到a的前面

        a.insertAfter(c):将a插入到c的后面

        a.insertBefore(c)

    删除

        empty() 清空元素

        remove() 删除元素    //移除a   a.remove();

/

/

/

案例5-左右移动

步骤分析:

    1.确定事件 单击事件

    2.编写函数:

        移动一个:

            右边的下拉选追加一个 左边的选中的第一个

        移动多个:

            左边选中的 追加到右边的下拉选中

        移动全部:

            将左边的所有option追加到右边的下拉选中

技术分析:

    表单对象属性过滤选择器

        :enabled   可用的

        :disabled  不可用

        :checked     选中的(针对于单选框和复选框的)

        :selected     选中的(针对于下拉选)   //alert($(":selected").size());就行了