jQuery

<meta charset="utf-8">

一、jQuery簡(jiǎn)介

1、什么是jQuery

jQuery 是一套兼容多瀏覽器的 javascript 腳本庫(kù).

核心理念是寫(xiě)得更少,做得更多,

使用 jQuery 將極大的提高編寫(xiě) javascript 代碼的效率,幫助開(kāi)發(fā)者節(jié)省了大量的工作,讓 寫(xiě)出來(lái)的代碼更加優(yōu)雅, 更加健壯,“如虎添翼”. 同時(shí)網(wǎng)絡(luò)上豐富的 jQuery 插件也讓我 們的工作變成了"有了 jQuery,一切 soeasy."--因?yàn)槲覀円呀?jīng)站在巨人的肩膀上了。

jQuery 在 2006 年 1 月由美國(guó)人 John Resig 在紐約的 barcamp 發(fā)布,吸引了來(lái)自 世界各地的眾多 JavaScript 高手加入,由 Dave Methvin 率領(lǐng)團(tuán)隊(duì)進(jìn)行開(kāi)發(fā)。如今, jQuery 已經(jīng)成為最流行的 javascript 框架,在世界前 10000 個(gè)訪(fǎng)問(wèn)最多的網(wǎng)站中,有超 過(guò) 55%在使用 jQuery

2、下載和安裝

jQuery 2.x has the same API as jQuery 1.x, but does not support Internet Explorer 6, 7,or 8. (不支持 ie6 7 8,如果需要下載 1.X)

(1)完整版 : jquery-2.1.4.js -->學(xué)習(xí)版本(學(xué)習(xí)源碼 想高手學(xué)習(xí)是最好學(xué)習(xí)方法)

(2)壓縮版 : jquery-2.1.4.min.js -->開(kāi)發(fā)版本(壓縮版,減少傳輸)

  • 優(yōu)點(diǎn):

(1)提供了強(qiáng)大的功能函數(shù)

(2)解決瀏覽器兼容性問(wèn)題

(3)實(shí)現(xiàn)豐富的 UI 和插件

(4)糾正錯(cuò)誤的腳本知識(shí)

  • 安裝:

在頁(yè)面引入即可 :<script src="js/jquery.js" type="text/javascript" ></script>

3、核心

"$"符號(hào)在 jQuery 中代表對(duì) jQuery 對(duì)象的引用, "jQuery"是核心對(duì)象,通過(guò)該對(duì)象 可以獲取 jQuery 對(duì)象,調(diào)用 jQuery 提供的方法等。

注意:只有 jQuery 對(duì)象才能調(diào)用 jQuery 提供 的方法。

二、DOM 對(duì)象和 jQuery 包裝集對(duì)象

原始的 Dom 對(duì) 象只有 DOM 接口提供的方法和屬性,通過(guò) js 代碼獲取的對(duì)象都是 dom 對(duì)象;而通過(guò) jQuery 獲取的對(duì)象是 jQuery 包裝集對(duì)象,簡(jiǎn)稱(chēng) jQuery 對(duì)象,只有 jQuery 對(duì)象才能使用 jQuery 提 供的方法。

1、DOM對(duì)象

javascript 中獲取 Dom 對(duì)象,Dom 對(duì)象只有有限的屬性和方法: 
// 得到DOM對(duì)象
var mydivDom = document.getElementById("mydiv");
console.log(mydivDom);

2、 jQuery 包裝集|對(duì)象

可以說(shuō)是 Dom 對(duì)象的擴(kuò)充.在 jQuery 的世界中將所有的對(duì)象, 無(wú)論是一個(gè)還是一組, 
都封裝成一個(gè) jQuery 包裝集,比如獲取包含一個(gè)元素的 jQuery 包裝集: 
var jQueryObject = $("#testDiv"); 

3、DOM與jQuery互轉(zhuǎn)

//Dom 對(duì)象轉(zhuǎn)為 jQuery 對(duì)象,只需要利用$()方法進(jìn)行包裝即可 
var domDiv = document.getElementById('mydiv');  // 獲取 Dom 對(duì)象 
mydiv = $(domDiv); 

//jQuery 對(duì)象轉(zhuǎn) Dom 對(duì)象,只需要取數(shù)組中的元素即可 
//第一種方式 獲取 jQuery 對(duì)象 
var jqueryDiv = jQuery('#mydiv'); 
//第二種方式 獲取 jQuery 對(duì)象 jqueryDiv = $('#mydiv'); 
var dom = jqueryDiv[0];
//將以獲取的 jquery 對(duì)象轉(zhuǎn)為 dom 

三、jQuery選擇器

1、層次性選擇器

層次選擇器 Hierarchy
選擇器         名稱(chēng)              舉例
后代選擇器   ancestor descendant     $("#parent div")選擇 id 為 parent 的元素的所有 div 元素
子代選擇器   parent > child          $("#parent>div")選擇 id 為 parent 的直接 div 子元素
相鄰選擇器   prev + next             $(".blue + img")選擇 css 類(lèi)為 blue 的下一個(gè) img 元素
同輩選擇器   prev ~ sibling          $(".blue ~ img")選擇 css 類(lèi)為 blue 的之后的 img 元素

示例:

                // 后代選擇器        ancestor descendant
        var houdai = $("#parent div");
        console.log(houdai);
        
        // 子代選擇器        parent > child
        var zidai = $("#parent > p");
        console.log(zidai);
        
        // 相鄰選擇器        prev + next  (1、只找當(dāng)前元素的下一個(gè)同級(jí) 2、只找一個(gè))
        var next = $("#parent + div");
        console.log(next);
        
        // 同輩選擇器        prev ~ sibling 
        var tb = $("#parent ~ div");
        console.log(tb);

2、基礎(chǔ)選擇器

基礎(chǔ)選擇器 Basics
選擇器             名稱(chēng)          舉例
id 選擇器          #id             $("#testDiv")選擇 id 為 testDiv 的元素(id屬性值)
元素名稱(chēng)選擇器     element         $("div")選擇所有 div 元素 (元素名稱(chēng))
類(lèi)選擇器            .class          $(".blue")選擇所有 class=blue 的元素  (class屬性值)
選擇所有元素      *               $("*")選擇頁(yè)面所有元素
組合選擇器       selector1,      $("#testDiv,span,.blue")同時(shí)選中這幾個(gè)選擇器匹配的元素
                selector2,
                selectorN

示例:

            // id 選擇器   #id   如果有多個(gè)同名ID,以第一個(gè)為準(zhǔn)
        console.log($("#mydiv1"));
        // 元素名稱(chēng)選擇器  element
        console.log($("div"));
        // 類(lèi)選擇器 .class 
        console.log($(".blue"));
        
        //  選擇所有元素      *
        console.log($("*"));
        
        // 組合選擇器        selector1,selector2,selectorN
        console.log($("#mydiv,div,span,.blue"));

3、表單選擇器

過(guò)濾選擇器
        :checked:得到所有checked為true的元素
         :eq(index):匹配指定下標(biāo)的元素
         :gt(index):大于指定下標(biāo)的
         
         :odd  獲取所有的奇數(shù)位置的元素
         :even 獲取所有的偶數(shù)位置的元素
   
                var cked = $(":checked");
        console.log(cked);
        console.log($(":checkbox:checked"));
        
        var eq1 = $(":checkbox:eq(0)");
        console.log(eq1);
        
        var gt1 = $(":checkbox:gt(0)");
        console.log(gt1);

四、jQuery DOM操作

1、操作元素的屬性

操作元素的屬性
獲取屬性        
方法        說(shuō)明                                                          舉例
attr(屬性名稱(chēng))    獲取指定的屬性值,操作 checkbox 時(shí)選中返回      attr('checked')attr('name')                                            
                          checked,沒(méi)有選中返回 undefined。
prop(屬性名稱(chēng))  獲取具有 true 和 false 兩個(gè)屬性的屬性值         prop('checked')                        
            
設(shè)置屬性
    attr("屬性名","屬性值")
    prop("屬性名","屬性值")
移除屬性
    removeAttr("屬性名")
                
attr()與prop()的區(qū)別:
    共同點(diǎn):都可以獲取元素的屬性
    不同點(diǎn):
        1、attr()可以獲取自定義屬性和固有屬性的值,而prop()只能獲取固有屬性的值 (固有屬性:元素本身就有的屬性)
        2、操作返回值是boolean類(lèi)型的屬性時(shí),attr()返回的是對(duì)應(yīng)的值,而prop()返回的是true和false
    如何選擇:
        如果屬性的返回值是boolean類(lèi)型時(shí),用prop()方法;  (checked、selected、disabled)
        如果是非boolean類(lèi)型,則使用attr()方法

示例:

 // 獲取元素的屬性 (固有屬性)
        var name1 = $("#ck1").attr("name");
        console.log(name1);
        var name2 = $("#ck2").prop("name");
        console.log(name2);
        
        // 獲取元素的屬性 (自定義屬性屬性)
        var a1 = $("#ck1").attr("aa");
        var a2 = $("#ck1").prop("aa");
        console.log(a1,a2);
        
        // 獲取元素的屬性 (設(shè)置過(guò)屬性且屬性返回值是boolean類(lèi)型)
        var c1 = $("#ck1").attr("checked");
        var c2 = $("#ck1").prop("checked");
        console.log(c1,c2);
        
        // 獲取元素的屬性 (未設(shè)置過(guò)屬性且屬性返回值是boolean類(lèi)型)
        var c11 = $("#ck2").attr("checked");
        var c22 = $("#ck2").prop("checked");
        console.log(c11,c22);
        
        
        // 設(shè)置元素的屬性值
        $("#ck1").attr("value","1");
        $("#ck2").prop("value","2");
        
        // attr()
        $("#ck1").attr("checked","checked");
        $("#ck2").prop("checked",true);
        
        
        // 移除屬性
        $("#ck1").removeAttr("name");

2、操作元素的樣式

操作元素的樣式
方法          說(shuō)明
attr(“class”)       獲取 class 屬性的值,即樣式名稱(chēng)
attr(“class”,”樣式名”)     修改 class 屬性的值,修改樣式
addClass(“樣式名”)         添加樣式名稱(chēng)
css()           添加具體的樣式
removeClass(class)      移除樣式名稱(chēng)
            
增加元素的具體樣式,格式:
    1)css({‘樣式名’:’樣式值’,’樣式名 2’:’樣式值 2’})
    例:css({"background-color":"red","color":"#fff"})2)css(“樣式名”,”樣式值”)
    例:css('color','white')
    2)css(“樣式名”,”樣式值”)
    例:css('color','white')
                    
attr():設(shè)置樣式時(shí),會(huì)重新設(shè)置class的屬性值,所以會(huì)將原來(lái)的樣式覆蓋
addClass():添加樣式,原來(lái)的樣式依然保留,如果出現(xiàn)了相同樣式,以后定義的樣式為準(zhǔn)
css():設(shè)置具體的樣式(設(shè)置行內(nèi)樣式,寫(xiě)在style屬性中的樣式)

3、操作元素的內(nèi)容

操作元素的內(nèi)容
方法                      說(shuō)明
html()                                 獲取元素的 html 內(nèi)容
html("html 內(nèi)容")                        設(shè)定元素的 html 內(nèi)容
text()                                 獲取元素的文本內(nèi)容,不包含 html
text("text 內(nèi)容")                        設(shè)置元素的文本內(nèi)容,不包含 html
val()                                           獲取元素 value 值
val(‘值’)                                           設(shè)定元素的 value 值
                
html()和text()
        html()可以識(shí)別數(shù)據(jù)中的html標(biāo)簽并 顯示出來(lái);
        text()不識(shí)別html標(biāo)簽,會(huì)當(dāng)做純文本顯示
        取值時(shí),html()能夠獲取到元素中的html代碼,text()只會(huì)獲取純文本
                
表單元素:取值賦值使用 val()
    文本框、密碼框、單選框、復(fù)選框、下拉框、文本域、文件域、隱藏域、(按鈕)等
非表單元素:取值賦值使用  html()和text()
    div、span、p、a、h1-h6、table、tr、td、ul、li、ol、font、lable等

4、創(chuàng)建元素

在 jQuery 中創(chuàng)建元素很簡(jiǎn)單,直接使用核心函數(shù)即可 
$(‘元素內(nèi)容’) 
$(‘<p>this is a paragraph!!!</p>’) 

5、添加元素

添加元素
方法                         說(shuō)明
prepend(content)                   在被選元素內(nèi)部的開(kāi)頭插入元素或內(nèi)容,被追加的 content 參數(shù)
                                                   可以是字符、HTML 元素標(biāo)記。
$(content).prependTo(selector)  把 content 元素或內(nèi)容加入 selector 元素開(kāi)頭
append(content)                 在被選元素內(nèi)部的結(jié)尾插入元素或內(nèi)容,被追加的 content 參數(shù),可以是
                                                    字符、HTML 元素標(biāo)記。
$(content).appendTo(sector)     把 content 元素或內(nèi)容插入 selector 元素內(nèi),默認(rèn)是在尾部
before()                                在元素前插入指定的元素或內(nèi)容:$(selector).before(content)
after()                             在元素后插入指定的元素或內(nèi)容:$(selector).after(content)

6、刪除元素

刪除元素
方法  說(shuō)明
remove()    刪除所選元素或指定的子元素,包括整個(gè)標(biāo)簽和內(nèi)容一起刪。
empty()     清空所選元素的內(nèi)容

7、遍歷元素

遍歷元素: each()
$(selector).each(function(index,element)) :遍歷元素
參數(shù) function 為遍歷時(shí)的回調(diào)函數(shù),
index 為遍歷元素的序列號(hào),從 0 開(kāi)始。
element 是當(dāng)前的元素,此時(shí)是 dom 元素。

$(".pink").each(function(index,element){
            console.log(index);
            console.log(element);
            console.log($(element).html());
});

五、jQuery事件

1、ready加載事件

ready()加載事件
ready()類(lèi)似于 onLoad()事件
ready()可以寫(xiě)多個(gè),按順序執(zhí)行
$(document).ready(function(){})等價(jià)于$(function(){})

ready()加載事件和onload加載事件:
ready()加載事件在dom結(jié)構(gòu)(htm標(biāo)簽)加載完畢后,就執(zhí)行
onload加載事件在dom結(jié)構(gòu)(htm標(biāo)簽)及引入的外部資源(js文件、css文件等)加載完畢之后才執(zhí)行

示例:

<script type="text/javascript">         
    // JS
    window.onload = function() {
        console.log("js的預(yù)加載事件....");
    }           
    // jquery
    $(document).ready(function(){
        console.log("jquery的預(yù)加載事件....");
        console.log($("#mydiv"));
    });     
    $(function(){
        console.log("jquery的預(yù)加載事件2....");
    }); 
</script>
<body>
    <div id="mydiv">
        預(yù)加載事件
    </div>
</body> 
//打印結(jié)果
js的預(yù)加載事件....
10-ready加載事件.html?__hbt=1559225739497:16 jquery的預(yù)加載事件....
10-ready加載事件.html?__hbt=1559225739497:17 jQuery.fn.init(1)
10-ready加載事件.html?__hbt=1559225739497:21 jquery的預(yù)加載事件2....

2、綁定事件

bind()綁定元素事件
為被選元素添加一個(gè)或多個(gè)事件處理程序,并規(guī)定事件發(fā)生時(shí)運(yùn)行的函數(shù)。
$(selector).bind( eventType [, eventData], handler(eventObject))
eventType :是一個(gè)字符串類(lèi)型的事件類(lèi)型,就是你所需要綁定的事件。這類(lèi)類(lèi)型可
以包括如下:
    blur, focus, focusin, focusout, load, resize, scroll, unload, click, 
    dblclick,mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, 
    mouseleave,change, select, submit, keydown, keypress, keyup, error [, eventData]:傳遞的參數(shù),格式:{名:值,名 2:值 2}
    handler(eventObject):該事件觸發(fā)執(zhí)行的函數(shù)
            
1.確定為哪些元素綁定事件
    獲取元素
2.綁定什么事件(事件類(lèi)型)
    第一個(gè)參數(shù):事件的類(lèi)型
3.相應(yīng)事件觸發(fā)的,執(zhí)行的操作
    第二個(gè)參數(shù):函數(shù)

3、總結(jié)與注意:
* 綁定事件只能使用匿名綁定或者使用已聲明的方法時(shí)不能加括號(hào)

        function test(){
            console.log(1);
        }
            //綁定成功
        $("#btn1").click(function(){
            test();
        })
        $("#btn2").click(test);
        //綁定失敗
        $("#btn2").click(test());
    *  jQuery中each

類(lèi)似于javascript的for循環(huán) ,但不同于for循環(huán)的是在each里面不能使用break結(jié)束循環(huán),也不能使用continue來(lái)結(jié)束本次循環(huán),想要實(shí)現(xiàn)類(lèi)似的功能就只能用return,
break 用return false
continue 用return true

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、樣式篇 第1章 初識(shí)jQuery (1)環(huán)境搭建 進(jìn)入官方網(wǎng)站獲取最新的版本 http://jquery.co...
    凜0_0閱讀 3,683評(píng)論 0 44
  • 第一章 jQuery簡(jiǎn)介 1-1 jQuery簡(jiǎn)介 1.簡(jiǎn)介 2.優(yōu)勢(shì) 3.特性與工具方法 1-2 環(huán)境搭建 進(jìn)入...
    mo默22閱讀 1,779評(píng)論 0 11
  • jQuery基礎(chǔ)(一)——樣式篇 1-2環(huán)境搭建 1-3 jQuery HelloWorld體驗(yàn) $(docume...
    croyance0601閱讀 1,174評(píng)論 0 8
  • 1.JQuery 基礎(chǔ) 改變web開(kāi)發(fā)人員創(chuàng)造搞交互性界面的方式。設(shè)計(jì)者無(wú)需花費(fèi)時(shí)間糾纏JS復(fù)雜的高級(jí)特性。 1....
    LaBaby_閱讀 1,513評(píng)論 0 2
  • 1.JQuery 基礎(chǔ) 改變web開(kāi)發(fā)人員創(chuàng)造搞交互性界面的方式。設(shè)計(jì)者無(wú)需花費(fèi)時(shí)間糾纏JS復(fù)雜的高級(jí)特性。 1....
    LaBaby_閱讀 1,277評(píng)論 0 1

友情鏈接更多精彩內(nèi)容