我與JS的那些陳年舊事(三)

JQuery概述

  • JQuery:JavaScript Query(Js查詢)

它是一個輕量的, 免費開源的JS函數(shù)庫, 能夠極大的簡化JS代碼

  • JQuery優(yōu)勢

(1)可以極大的簡化JS代碼

(2)可以像css一樣獲取頁面元素

(3)可以操作CSS屬性來控制頁面的效果

(4)可以兼容常用的瀏覽器
在JS中少數(shù)內(nèi)容在不同的瀏覽器中不兼容。比如:innerText简逮、removeNode()庶溶、replaceNode()等在火狐中無法使用.

//在CSS中:
div{ background-color:red }
//在jQuery中:
$("div").css("background-color","red");

//在CSS中:
#d1{ background-color:red }
//在jQuery中:
$("#d1").css("background-color","red");
  • 版本支持

1.x – 支持常用瀏覽器, 以及IE6+以上的版本

2.x – 支持常用瀏覽器, 以及IE9+以上的版本

3.x – 支持常用瀏覽器, 以及IE9+以上的版本


jQuery的缺點:jQuery的高版本不兼容低版本仔役。這是因為jQuery在升級時除了會做一些內(nèi)部優(yōu)化之外箕慧,還會增加或刪除一些方法歉胶。如果升級到高版本婿斥,可能會造成之前的部分代碼無法執(zhí)行!

  • jQuery引入

jQuery函數(shù)庫本身是一個js文件,所以引入jQuery和引入一個普通的JS文件一樣

<!-- 引入JQuery庫文件,注意文件路徑-->
<script type="text/javascript" src="jquery-x.x.x.js"></script>

1.JQuery語法

  • $符號

**等價JQuery**劝篷,調(diào)用()等價于調(diào)用jQuery(), 該函數(shù)會返回一個jQuery對象, 該對象包含了若干個html元素, 可以調(diào)用jQuery中提供的方法或?qū)傩詠聿僮鬟@些元素.

  • 文檔就緒事件

$(function(){...}) 等價于window.onload事件

$(function(){
   //在文檔加載完后立即觸發(fā)執(zhí)行 
});
  • JQuery對象與JS對象的相互轉(zhuǎn)換

為什么需要相互轉(zhuǎn)換

jQuery是js的簡單框架, 在使用時通過$()可以返回一個jQuery對象, 可以通過jQuery提供的屬性或方法來操作其中的內(nèi)容, 但是, 不可以通過jQuery對象來調(diào)用js的屬性或者js的方法. 反之, 也不可以通過JS對象來調(diào)用jQuery的屬性或者jQuery方法, 否則調(diào)用會報錯!!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JQuery引入</title>
    <script type="text/javascript" src="jquery-1.4.2.js"></script>
    <script>
        //文檔就緒事件
        $(function(){
            //JQuery獲取div元素內(nèi)容
            alert($('#hello').html());
            
            //========== JS對象轉(zhuǎn)換成JQuery對象 =========//
            var div = document.getElementById("hello");
            alert($(div).html());
            
            //========== JQuery對象轉(zhuǎn)換成JS對象 =========//
            var info = $('#hello');
            alert(info.html());
        });
        
    </script>
</head>
<body>
    <div id="hello">Hello JQuery!</div>
</body>
</html>

2.JQuery選擇器

  • 基本選擇器

1.元素名選擇器:根據(jù)元素的名稱選中指定名稱的元素

格式:$('元素名稱')

//1民宿、改變元素名為 <div> 的所有元素的背景色為 #FF69B4"  id="b1"
    /* 選中b1按鈕,為b1按鈕綁定點擊事件 */
        $('#b1').click(function(){
            //css("屬性名","屬性值")
            $("div").css("background","#FF69B4"); 
        });

2.類選擇器:根據(jù)元素的class屬性,匹配所有class值相同的元素

格式:$('.class值')

//3娇妓、改變 class 為 mini 的所有元素的背景色為 #FF0033"  id="b3"
    /* 選中b3按鈕,為b3按鈕綁定點擊事件 */
        $('#b3').click(function(){
            $('.mini').css("background","#FF0033");
        });

3.ID選擇器:根據(jù)元素的id屬性值, 匹配具有特定id的元素

格式:$("#id值")

//2、改變 id 為 one 的元素的背景色為 #9ACD32"  id="b2"
    /* 選中b2按鈕,為b2按鈕綁定點擊事件 */
        $('#b2').click(function(){
            $('#one').css("background","#9ACD32");
        });

4.多元素選擇器 :匹配多個選擇器選中的元素

格式:$("選擇器1,選擇器2,…選擇器n")

//4活鹰、改變所有的<span>元素和 id 為 two 的,id為one的哈恰,class為 mini的所有的元素的背景色為 #006400"  id="b4"
    /* 選中b4按鈕,為b3按鈕綁定點擊事件 */
        $("#b4").click(function(){
            $("span,#two,#one,.mini").css("background-color", "#006400");
        });
  • 層級選擇器

1.后代選擇器

格式:$("祖先元素 后代元素")

//1、改變 div 內(nèi)所有 span 的背景色為 #FF0000" id="b1"
    /* 選中b1按鈕,為b1按鈕綁定點擊事件 */
        $("#b1").click(function(){
            $("div span").css("background-color", "#FF0000");
        });

2.子元素選擇器

格式:$("祖先元素>子元素")

//2志群、改變 body 內(nèi)子 div 的背景色為 #D8C93B"  id="b2"
    /* 選中b2按鈕,為b2按鈕綁定點擊事件 */
        $("#b2").click(function(){
            $("body>div").css("background-color","#D8C93B");
        });

3.相鄰兄弟選擇器

格式:$("大哥+小弟")

//3蕊蝗、改變 id 為 two 的下一個 div 的背景色為 #0000FF"  id="b3"
    /* 選中b3按鈕,為b3按鈕綁定點擊事件 */
        $("#b3").click(function(){
            $("#two+div").css("background-color","#0000FF");
        });

4.$(“#two~div”):匹配id為two元素后面所有的兄弟div元素

//4、改變 id 為 two 的元素后面的所有 div 兄弟元素的背景色為 #76AA0F"  id="b4"
    /* 選中b4按鈕,為b4按鈕綁定點擊事件 */
        $("#b4").click(function(){
            $("#two~div").css("background-color","#76AA0F");
        });

5.一些方法

方法 相關描述
siblings() 返回所匹配元素的所有兄弟元素
next/prev 返回所匹配元素后面/前面緊鄰的兄弟元素
nextAll/prevAll 返回所匹配元素后面/前面所有兄弟元素
//5赖舟、改變 id 為 two 的元素所有 div 兄弟元素的背景色為 #FF6347"  id="b5"
        $("#b5").click(function(){
            $("#two").siblings("div").css("background-color", "#FF6347");
        });
  • 基本過濾選擇器

(后面單獨講解過濾)

格式:==元素:過濾形式==

過濾 相關描述
$("div:first") 匹配所有div中的第一個div元素
$("div:last") 匹配所有div中的最后一個div元素
$("div:not(.one)") 匹配所有div中class值不為one的div元素
$("div:eq(3)") 匹配所有div中的索引值為3的div元素
$("div:lt(3)") 匹配所有div中的索引值小于3的div元素
$("div:gt(3)") 匹配所有div中的索引值大于3的div元素
$("div:even") 匹配所有div中的索引值為偶數(shù)的div元素
$("div:odd") 匹配所有div中的索引值為奇數(shù)的div元素
baseFilter.gif
/* ---------基本過濾選擇器練習--------- */
$(function() {
        //1蓬戚、改變第一個 div 元素的背景色為 #FF6347"  id="b1"
        $("#b1").click(function(){
            $("div:first").css("background-color","#FF6347");
            //$("div:eq(0)").css("background-color","#FF6347");
        });

        //2、改變最后一個 div 元素的背景色為 #9ACD32" id="b2" 
        $("#b2").click(function(){
            $("div:last").css("background-color", "#9ACD32");
        });
        
        //3宾抓、改變class不為 one 的所有 div 元素的背景色為 #FF0033" id="b3" 
        $("#b3").click(function(){
            $("div:not(.one)").css("background-color", "#FF0033");
        });

        //改變索引值等于 3 的 div 元素的背景色為 #006400"  id="b4" 
        $("#b4").click(function(){
            $("div:eq(3)").css("background-color", "#006400");
        });
    })
  • 內(nèi)容選擇器

選擇器 相關描述
:contains 匹配包含給定文本的元素
:empty 匹配所有不包含子元素或文本的空元素
:has 匹配含有選擇器所匹配的元素的元素
:parent 匹配含有子元素或文本的元素
:parents 獲取當前所匹配所有祖先元素
  • 可見選擇器

選擇器 相關描述
:hidden 匹配所有不可見元素子漩,或者type為hidden的元素
:visible 匹配所有的可見元素
content_visible_selector.gif
$(function() {
        /* ---------內(nèi)容選擇器--------- */
        //1、改變含有文本 'one' 的 div 元素的背景色為 #FF6347" id="b1"
        $('#b1').click(function() {
            $("div:contains('one')").css({
                background: '#FF6347'
            });
        });
        
        //2石洗、改變div空元素(既不包含文本也不包含子元素)的背景色為 #9ACD32" id="b2"
        $("#b2").click(function() {
            $("div:empty").css({
                background: '#9ACD32'
            });
        });

        //=================================
        /* ---------可見選擇器練習--------- */
        //1幢泼、讓所有隱藏的div元素顯示, 并改變背景色為 #FF69B4" id="b3"
        $("#b3").click(function() {
            var $div = $("div:hidden");
            $div.show();
            $div.css({
                background: '#FF69B4'
            });
        });

        //2、改變所有可見 div 元素背景色為 #F08080" id="b4"
        $("#b4").click(function(){
            $("div:visible").css("background-color", "#F08080");
        });

    })
  • 表單選擇器

選擇器 相關描述
:input 匹配所有 input, textarea, select 和 button 元素
:text 匹配所有的單行文本框
:password 匹配所有密碼框
:radio 匹配所有單選按鈕
:checkbox 匹配所有復選框
:submit 匹配所有提交按鈕
:reset 匹配所有重置按鈕
:image 匹配所有圖像域
:checked 匹配所有選中的被選中元素(復選框讲衫、單選框等缕棵,不包括select中的option)
:disabled 匹配所有不可用元素
:selected 匹配所有選中的option元素
form_selector.gif
$(function() {
        /* ---------表單選擇器練習--------- */
        //1孵班、打印所有的 :input 元素 id="b1"
        /* :input元素可以選中所有的表單項元素(input、select招驴、textarea) */
        $("#b1").click(function(){
            $(":input").each(function(){
                console.log( this );
            });
        });
        
        //2篙程、打印所有的 :password 元素" id="b2"
        /* :password 匹配所有的密碼輸入框 */
        $("#b2").click(function(){
            $(":password").each(function(){
                console.log(this);
            });
        });

        //3、打印所有的 :radio 元素" id="b3"
        /* :radio 匹配所有的單選框 */
        $("#b3").click(function(){
            $(":radio").each(function(){
                console.log(this);
            });
        });
        
        //4别厘、打印所有的 :checked 元素" id="b4"
        /* :checked 匹配所有被選中的單選框虱饿、復選框、option選項
         * :selected 匹配所有被選中option選項
         */
        $("#b4").click(function(){
            $(":checked").each(function(){
                console.log( this );
            });
            /*$("input:checked").each(function(){
                console.log( this );
            });*/
            /*$("input[type='radio']:checked").each(function(){
                console.log( this );
            });*/
            /*$("input[type='checkbox']:checked").each(function(){
                console.log( this );
            });*/
        });
    })
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末触趴,一起剝皮案震驚了整個濱河市氮发,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌冗懦,老刑警劉巖爽冕,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異披蕉,居然都是意外死亡颈畸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門嚣艇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來承冰,“玉大人华弓,你說我怎么就攤上這事食零。” “怎么了寂屏?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵贰谣,是天一觀的道長。 經(jīng)常有香客問我迁霎,道長吱抚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任考廉,我火速辦了婚禮秘豹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘昌粤。我一直安慰自己既绕,他們只是感情好,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布涮坐。 她就那樣靜靜地躺著凄贩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪袱讹。 梳的紋絲不亂的頭發(fā)上疲扎,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機與錄音,去河邊找鬼椒丧。 笑死壹甥,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的瓜挽。 我是一名探鬼主播盹廷,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼久橙!你這毒婦竟也來了俄占?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤淆衷,失蹤者是張志新(化名)和其女友劉穎缸榄,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體祝拯,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡甚带,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了佳头。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鹰贵。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖康嘉,靈堂內(nèi)的尸體忽然破棺而出碉输,到底是詐尸還是另有隱情,我是刑警寧澤亭珍,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布敷钾,位于F島的核電站,受9級特大地震影響肄梨,放射性物質(zhì)發(fā)生泄漏阻荒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一众羡、第九天 我趴在偏房一處隱蔽的房頂上張望侨赡。 院中可真熱鬧,春花似錦粱侣、人聲如沸羊壹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽舶掖。三九已至,卻和暖如春尔店,著一層夾襖步出監(jiān)牢的瞬間眨攘,已是汗流浹背主慰。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鲫售,地道東北人共螺。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像情竹,于是被迫代替她去往敵國和親藐不。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

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