天天看點

傳智黑馬前端筆記 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());就行了