《鋒利的jQuery》一、認(rèn)識(shí)jQuery


title: 《鋒利的jQuery》一、認(rèn)識(shí)jQuery
date: 2017-06-13 14:14:24
tags: 鋒利的jQuery


window.onload和$(document).ready()

window.onload:必須等網(wǎng)頁中所有的內(nèi)容加載完畢后(包括圖片)才能執(zhí)行,不能同時(shí)編寫多個(gè)。

$(document.ready()):網(wǎng)頁中所有DOM結(jié)構(gòu)繪制完畢后就執(zhí)行,可能DOM元素關(guān)聯(lián)的東西并沒有加載完,可以同時(shí)編寫多個(gè),可以簡寫為$(function(){})

jQuery對象和DOM對象的轉(zhuǎn)換

jQuery轉(zhuǎn)為DOM對象有兩種方法,即[index]get(index)

var box = $('#box')[0];

var box1 = $('#box1').get(0);

DOM轉(zhuǎn)為jQuery對象,只需要用$()把DOM對象包裝起來,$()就是一個(gè)jQuery對象的制造工廠

var box = document.getElementById('box');

var $box = $(box);

$快捷方式的更改

$是jQuery的快捷方式,為防止沖突,也可以自定義這個(gè)快捷方式。

交給其他js庫

假如jQuery庫在其他庫之后引入,在其他庫和jQuery庫加載完成后就可以使用jQuery.noConflict()將變量$的控制權(quán)交給其他js庫,如果先引入jQuery就不需要jQuery.noConflict()方法,直接寫$即可。

<body>
    <p id="pp">Test-prottype</p>
    <p>Test-jQuery</p>
    <!--引入prototype-->
    <script src="lib/prototype.js"></script>
    <!--引入jQuery-->
    <script src="../jquery1.9.1.min.js"></script>
    <script>
        jQuery.noConflict();   // 將變量$的控制權(quán)移交給prototype.js
        
        jQuery(function(){     // 使用jQuery
            jQuery('p').click(function(){    
                alert( jQuery(this).text() )
            })
        })

        $('pp').style.display = 'none';         // 使用prototype隱藏元素
    </script>
</body>

防止$沖突

第一種方法:想確保jQuery不會(huì)與其他庫沖突,可以自定義一個(gè)快捷方式。

<body>
    <p id="pp">Test-prottype</p>
    <p>Test-jQuery</p>
    <!--引入prototype-->
    <script src="lib/prototype.js"></script>
    <!--引入jQuery-->
    <script src="../jquery1.9.1.min.js"></script>
    <script>
        var $j = jQuery.noConflict();       // 自定義一個(gè)快捷方式
        
        $j(function(){          // 利用剛自定義的快捷方式使用jQuery
            $j('p').click(function(){
                alert($j(this).text());
            })
        })
        
        $('pp').style.display = 'none';         // 使用prototype隱藏元素
    </script>
</body>

第二種方法:如果不想自定義名稱,同時(shí)又想避免沖突可以這樣。

<body>
    <p id="pp">Test-prottype</p>
    <p>Test-jQuery</p>
    <!--引入prototype-->
    <script src="lib/prototype.js"></script>
    <!--引入jQuery-->
    <script src="../jquery1.9.1.min.js"></script>
    <script>
        jQuery.noConflict();   // 將變量$的控制權(quán)移交給prototype.js
        
        jQuery(function($){     // 將$通過參數(shù)傳入
            $('p').click(function(){
                alert($(this).text());
            })
        })
        
         $('pp').style.display = 'none';         // 使用prototype隱藏元素
    </script>
</body>

判斷是否獲取到了某元素

在原生javascript中通過這樣來判斷頁面中是否有這個(gè)元素

if(document.getElementById('tt')){
    document.getElementById('tt').style.color = 'red';
}

在jQuery中因?yàn)?()獲取的是一個(gè)對象,所以不能直接判斷這個(gè)對象是否存在

if($('#tt')){
    // 這里將永遠(yuǎn)判斷為true,因?yàn)閖Query對象一直存在
}

應(yīng)該這樣判斷

if($('#tt').length > 0){
    
}

或者

if($('#tt')[0]){
    
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 第一章 認(rèn)識(shí)jquery 1.1 JavaScript和JavaScript庫 1.1.1 JavaScript簡...
    杜誠慶閱讀 394評論 0 2
  • 原文鏈接 http://blog.poetries.top/2016/10/20/review-jQuery 關(guān)注...
    前端進(jìn)階之旅閱讀 16,679評論 18 503
  • 1.JQuery 基礎(chǔ) 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式。設(shè)計(jì)者無需花費(fèi)時(shí)間糾纏JS復(fù)雜的高級特性。 1....
    LaBaby_閱讀 1,367評論 0 2
  • “趕快過來吃飯!” 在里屋的人絲毫無動(dòng)于衷,在椅子上坐著看書。 “喂!和你說話呢!你聾了么?趕緊吃飯,等會(huì)就涼了!...
    angelfghting閱讀 127評論 0 0
  • 下班回家的路上,穿過巷子,一張木板凳,想了一下,如果外婆還活著,肯定坐在巷子里的小木凳上,搖著蒲扇,等我回來,現(xiàn)在...
    雨和星星的夜閱讀 230評論 0 1