Jquery

1. Jquery概念

jQuery 是一個(gè) JavaScript 庫
jQuery 庫包含以下特性:
  1. HTML 元素選取
  2. HTML 元素操作
  3. CSS 操作
  4. HTML 事件函數(shù)
  5. JavaScript 特效和動(dòng)畫
  6. HTML DOM 遍歷和修改
  7. AJAX

2. 庫和框架的區(qū)別

1. 庫:庫可以看作是一種方法的集合哗讥,他不會(huì)特定的去解決某些問題朵栖,他是將所有的方法整合在一個(gè)庫中责循,供使用者使用撮珠,Jquery可以看成一個(gè)庫,它提供了相當(dāng)多的方法和函數(shù)塌忽。

2. 框架:框架的含義是一個(gè)骨架拍埠,它封裝了某領(lǐng)域內(nèi)處理流程的控制邏輯,所以我們經(jīng)常說框架是一個(gè)半成品的應(yīng)用砚婆。由于領(lǐng)域的種類是如此眾多械拍,所以框架必須具有針對(duì)性,比如装盯,專門用于解決底層通信的框架坷虑,或?qū)iT用于醫(yī)療領(lǐng)域的框架」∧危框架中也包含了很多元素迄损,框架中的所有元素都為了實(shí)現(xiàn)一個(gè)共同的目標(biāo)而相互協(xié)作

3. jquery 能做什么?

  1. HTML 元素選取
  2. HTML 元素操作
  3. CSS 操作
  4. HTML 事件函數(shù)
  5. JavaScript 特效和動(dòng)畫
  6. HTML DOM 遍歷和修改
  7. AJAX

4.jquery 對(duì)象和 DOM 原生對(duì)象有什么區(qū)別账磺?如何轉(zhuǎn)化芹敌?

  • 區(qū)別:
jquery對(duì)象是通過jquery選擇器選擇的對(duì)象,得到的是類數(shù)組對(duì)象垮抗,有自己的獨(dú)有的屬性和方法氏捞;DOM原生對(duì)象是通過JS選擇器獲得的對(duì)象,有自己的屬性和方法。二者不能夠混用冒版,否則會(huì)報(bào)錯(cuò)液茎。

1.原生DOM對(duì)象:根據(jù)W3C DOM規(guī)范,DOM是HTML與XML的應(yīng)用接口(API)辞嗡。通過 DOM捆等,可以訪問所有的 HTML 元素,連同它們所包含的文本和屬性续室《翱荆可以對(duì)其中的內(nèi)容進(jìn)行修改和刪除,同時(shí)也可以創(chuàng)建新的元素挺狰。HTML DOM 獨(dú)立于平臺(tái)和編程語言明郭。它可被任何編程語言諸如 Java买窟、JavaScript 和 VBScript 使用。DOM對(duì)象达址,即是我們用傳統(tǒng)的方法(javascript)獲得的對(duì)象蔑祟。

2.jQuery對(duì)象:jquery對(duì)象其實(shí)是一個(gè)javascript的數(shù)組這個(gè)數(shù)組對(duì)象包含125個(gè)方法和4個(gè)屬性4個(gè)屬性分別是:
   (1)jquery 當(dāng)前的jquery框架版本號(hào)
   (2)length 指示該數(shù)組對(duì)象的元素個(gè)數(shù)
   (3)context 一般情況下都是指向HtmlDocument對(duì)象
   (4)selector 傳遞進(jìn)來的選擇器內(nèi)容 如:#yourId或.yourClass等

  • 如何轉(zhuǎn)換:
獲取jquery對(duì)象:$('#header');
獲取DOM對(duì)象 :document.getElementById('header');
jquery轉(zhuǎn)原生DOM對(duì)象:$('#header')[0];
DOM對(duì)象轉(zhuǎn)jquery:$(DOM對(duì)象)趁耗;

5.jquery中如何綁定事件沉唠?bind、unbind苛败、delegate满葛、live、on罢屈、off都有什么作用嘀韧?推薦使用哪種?使用on綁定事件使用事件代理的寫法缠捌?

jQuery中綁定事件的方法有:bind()锄贷,live(),delegate()曼月,on()谊却。
與之對(duì)應(yīng)的移除事件的方法有:unbind(),die()哑芹,undeleate()炎辨,off()。
其中l(wèi)ive()和die()在jQuery1.7中以棄用聪姿,bind()碴萧、unbind(),delegate()、undeleate()在在jQuery3.0中以棄用末购。
  • bind:bind()是最直接的破喻、存在最久的綁定方法,但它不會(huì)綁定到在它執(zhí)行完后動(dòng)態(tài)添加的那些元素上盟榴。

    <ul>
            <li>item1</li>
            <li>item2</li>
            <li>item3</li>
            <li>item4</li>
    </ul>
    <input type="button" value="添加">    
    <script>
        $('li').bind('click',function(){
            console.log($(this).text())
        });
        var $li =$('<li>item5</li>')//新添加的li不會(huì)被綁定到上面的點(diǎn)擊效果
        $('input').bind('click',function(){
            $('ul').append($li)
        });
    </script>
  • unblind:用于移除指定元素綁定的事件
 <ul>
            <li>item1</li>
            <li>item2</li>
            <li>item3</li>
            <li>item4</li>
    </ul>
    <input type="button" value="添加">    
    <script>
        $('li').bind('click',function(){
            console.log($(this).text())
        });
        var $li =$('<li>item5</li>')
        $('input').bind('click',function(){
            $('ul').append($li)
        });
        $('li').unbind();//被移除綁定點(diǎn)擊效果
        $('input').unbind();//被移除綁定點(diǎn)擊效果
    </script>
  • live:這個(gè)方法用到了事件委托的概念來處理事件的綁定,它將事件綁定到了document上曹质,所以在它執(zhí)行之后添加的元素仍然可以觸發(fā)綁定事件。
 <ul>
            <li>item1</li>
            <li>item2</li>
            <li>item3</li>
            <li>item4</li>
    </ul>
    <input type="button" value="添加">    
    <script>
        $('li').live('click',function(){
            console.log($(this).text())
        });
        var $li =$('<li>item5</li>')//新添加的li有上面綁定的點(diǎn)擊效果
        $('input').live('click',function(){
            $('ul').append($li)
        });
       
    </script>
  • delegate:delegate()有點(diǎn)像live(),不同于.live()的地方在于曹货,它不會(huì)把事件全部綁定到document,而是由你決定把它放在哪兒(事件代理)咆繁。

    <ul>
            <li>item1</li>
            <li>item2</li>
            <li>item3</li>
            <li>item4</li>
    </ul>
    <input type="button" value="添加">    
    <script>
        $('ul').delegate('li','click',function(){//事件代理
            console.log($(this).text())
        });
        var $li =$('<li>item5</li>')
        $('input').on('click',function(){
            $('ul').append($li)
        });
       
    </script>
  • on:提供了一種統(tǒng)一綁定事件的方法,它替代了.bind(), .live(), .delegate()這三種方法顶籽。
 <ul>
            <li>item1</li>
            <li>item2</li>
            <li>item3</li>
            <li>item4</li>
    </ul>
    <input type="button" value="添加">    
    <script>
        $('ul').on('click','li',function(){
            console.log($(this).text())
        });
        var $li =$('<li>item5</li>')
        $('input').on('click',function(){
            $('ul').append($li)
        });
       
    </script>
  • off:提供了一種統(tǒng)一移除綁定事件的方法玩般,它替代了.unbind(), .die(), .undelegate()這三種方法。

    <ul>
            <li>item1</li>
            <li>item2</li>
            <li>item3</li>
            <li>item4</li>
    </ul>
    <input type="button" value="添加">    
    <script>
        $('ul').on('click.console','li',function(){
            console.log($(this).text())
        });
        var $li =$('<li>item5</li>')
        $('input').on('click.add',function(){
            $('ul').append($li)
        });
        $('ul').off('click.console');//移除綁定點(diǎn)擊
        $('input').off('click.add');//移除綁定點(diǎn)擊
       
    </script>
  • 推薦使用on()和off()方法.

6..jquery 如何展示/隱藏元素礼饱?

jquery中可以使用hide()和show()的方法進(jìn)行展示和隱藏元素
如:

  <div>
        <button id="hide">隱藏</button>
        <button id="show">展示</button>
        <p>hello world</p>
    </div>
    <script src='http://apps.bdimg.com/libs/jquery/1.9.1/jquery.js'></script>
    <script>
        $('#hide').on('click',function(){
            $("p").hide();//隱藏p元素
        })
        $('#show').on('click',function(){
            $('p').show();//展示p元素
        })
    </script>

7. jquery 動(dòng)畫如何使用坏为?

jQuery animate() 方法用于創(chuàng)建自定義動(dòng)畫究驴。
語法:$(selector).animate({params},speed,callback);
1.必需的 params 參數(shù)定義形成動(dòng)畫的 CSS 屬性。

2.可選的 speed 參數(shù)規(guī)定效果的時(shí)長(zhǎng)匀伏。它可以取以下值:"slow"洒忧、"fast" 或毫秒。

3. 可選的 callback 參數(shù)是動(dòng)畫完成后所執(zhí)行的函數(shù)名稱够颠。
 
    <input type="button" value="開始" id="input">
    <input type="button" value="重置" id="input2">
    <div id="ct"></div>
    <script>
        var clock = true;
        $('#input').on('click',function(){
            if (!clock) {
                return;
            }
            clock = false;
          
            $('#ct').animate({width:'200',height:'200'},2000)
            $('#ct').animate({opacity:'0'},2000)
                    .animate({opacity:'1'},3000)
                    .animate({top:'0',left:'50%'},2000)
            $('#ct').animate({top:'0',left:'0'},3000) 
            $('#ct').animate({width:'100',height:'100'},2000,function(){
                clock =true;
            })            
                
        });

        $('#input2').on('click',function(){

            $('#ct').finish();//結(jié)束所以動(dòng)畫返回css樣式
        })
    

    </script>

效果

8. 如何設(shè)置和獲取元素內(nèi)部 HTML 內(nèi)容熙侍?如何設(shè)置和獲取元素內(nèi)部文本?

text() 設(shè)置或返回所選元素的文本內(nèi)容
html() 設(shè)置或返回所選元素的內(nèi)容(包括 HTML 標(biāo)記)
  • 獲嚷哪ァ:
<p id="test">這是段落中的<b>粗體</b>文本蛉抓。</p>
<script>
    console.log( $('#test').html() );  // 這是段落中的<b>粗體</b>文本。
    console.log( $('#test').text() );  // 這是段落中的粗體文本
</script>
  • 設(shè)置:
 console.log( $('#test').html('<span>hello</span>' )); // 
這是段落中的<b>粗體</b>文本剃诅。被替換成hello 
console.log( $('#test').text('<span>hello</span>' )); //
這是段落中的<b>粗體</b>文本巷送。<span>hello</span>

9. 如何設(shè)置和獲取表單用戶輸入或者選擇的內(nèi)容?如何設(shè)置和獲取元素屬性矛辕?

val() 設(shè)置或返回表單字段的值
attr() 設(shè)置或返回元素的屬性
  • 獲刃︴恕:
<p id="test">這是段落中的<b>粗體</b>文本。</p>
<input id="test-input" type="text" placeholder="測(cè)試表單val">
<a id="test-a" >這是鏈接</a>
 ![](http://img1.imgtn.bdimg.com/it/u=1245538184,752165177&fm=23&gp=0.jpg)
<script>
    
    console.log( $('#test-input').val() );
    console.log( $('#test-a').attr('href') );
    console.log( $('#test-img').attr('data-src') );
   
 </script>   

  • 設(shè)置:
<p id="test">這是段落中的<b>粗體</b>文本聊品。</p>
<input id="test-input" type="text" placeholder="測(cè)試表單val">
<a id="test-a" >這是鏈接</a>
 ![](http://img1.imgtn.bdimg.com/it/u=1245538184,752165177&fm=23&gp=0.jpg)
<script>
    
    $('#test-input').val('輸入xxx') ;
    $('#test-a').attr('href','http://www.baidu.com') ;
    $('#test-img').attr('src', $('#test-img').attr('data-src')) ;
 </script>   

練習(xí)

練習(xí)1
練習(xí)2
練習(xí)3

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末飞蹂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子杨刨,更是在濱河造成了極大的恐慌晤柄,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妖胀,死亡現(xiàn)場(chǎng)離奇詭異芥颈,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)赚抡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門爬坑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人涂臣,你說我怎么就攤上這事盾计。” “怎么了赁遗?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵署辉,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我岩四,道長(zhǎng)哭尝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任剖煌,我火速辦了婚禮材鹦,結(jié)果婚禮上逝淹,老公的妹妹穿的比我還像新娘。我一直安慰自己桶唐,他們只是感情好栅葡,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著尤泽,像睡著了一般欣簇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上安吁,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天醉蚁,我揣著相機(jī)與錄音,去河邊找鬼鬼店。 笑死,一個(gè)胖子當(dāng)著我的面吹牛黔龟,可吹牛的內(nèi)容都是我干的妇智。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼氏身,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼巍棱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蛋欣,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤航徙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后陷虎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體到踏,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年尚猿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了窝稿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡凿掂,死狀恐怖伴榔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情庄萎,我是刑警寧澤踪少,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站糠涛,受9級(jí)特大地震影響援奢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜脱羡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一萝究、第九天 我趴在偏房一處隱蔽的房頂上張望免都。 院中可真熱鬧,春花似錦帆竹、人聲如沸绕娘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽险领。三九已至,卻和暖如春秒紧,著一層夾襖步出監(jiān)牢的瞬間绢陌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工熔恢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脐湾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓叙淌,卻偏偏與公主長(zhǎng)得像秤掌,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鹰霍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

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

  • 1闻鉴、 jQuery 能做什么? jquery是一個(gè)豐富的js庫茂洒,內(nèi)部對(duì)js的很多復(fù)雜的方法進(jìn)行了封裝和加工孟岛,比如j...
    zh_yang閱讀 1,409評(píng)論 6 13
  • (續(xù)jQuery基礎(chǔ)(1)) 第5章 DOM節(jié)點(diǎn)的復(fù)制與替換 (1)DOM拷貝clone() 克隆節(jié)點(diǎn)是DOM的常...
    凜0_0閱讀 1,345評(píng)論 0 8
  • 1: 庫和框架的區(qū)別? 庫:庫是更多是一個(gè)封裝好的特定的集合督勺,提供給開發(fā)者使用渠羞,而且是特定于某一方面的集合(方法和...
    任少鵬閱讀 400評(píng)論 0 2
  • jQuery 能做什么? jQuery是一個(gè)輕量級(jí)的javascript庫玷氏,可以少寫代碼堵未,做更多的事。1.jQue...
    小囧兔閱讀 385評(píng)論 0 1
  • 如何用好自媒體賺錢(一)里面盏触,介紹了最近時(shí)間段可以做的草根化媒體平臺(tái)渗蟹,也進(jìn)行了簡(jiǎn)要的分析。后面呢開始詳細(xì)地解說赞辩。 ...
    況北痕閱讀 284評(píng)論 2 1