任務(wù)25-jquery DOM&事件

1. 說說庫和框架的區(qū)別?

  • 庫(library):我們可以簡單的認(rèn)為它就是一個工具箱,里面有可以直接拿來使用的方法和工具,以及可以調(diào)用的API。一些已經(jīng)封裝好了的函數(shù)可以實(shí)現(xiàn)特定的效果,只需要在使用的時候用少量的代碼去調(diào)動,這里的控制權(quán)在于 你,你來決定怎樣使用庫。
  • 框架(framework):可以簡單理解為搭好的模型架子,我們可以直接往里面添加內(nèi)容或進(jìn)行裝飾。而框架對于開發(fā)者,開發(fā)者只需在這個框架中添加自己的東西而實(shí)現(xiàn)具體的功能。常見的框架有Angular, React,Vue等。

2. jquery 能做什么?

jQuery是一個兼容多瀏覽器的JavaScript庫,核心理念是write less,do more,它的語法設(shè)計(jì)可以使開發(fā)更加便捷,例如操作文檔對象、選擇DOM元素、制作動畫效果、事件處理、使用Ajax等。除此之外,jQuery還提供API讓開發(fā)者編寫插件??傊?,使用jQuery能使開發(fā)者很輕松的開發(fā)出功能強(qiáng)大的靜態(tài)或動態(tài)頁面。

3. jquery 對象和 DOM 原生對象有什么區(qū)別?如何轉(zhuǎn)化?

  • 區(qū)別:
    jQuery對象是通過jQuery包裝DOM對象后產(chǎn)生的對象,只能使用jQuery里的方法,無法使用DOM對象的任何方法。同樣,DOM原生對象也不能使用jQuery里的方法。
  • 轉(zhuǎn)化:
    • jQuery -> 原生:jQuery對象是一個類似數(shù)組的對象,可以使用[index]或者get(index)方法轉(zhuǎn)換為DOM對象,如:
      <pre>var $p1 = $('.p1'); //jQuery對象 var p1 = $p1[0];//DOM對象 var p1 = $p1.get(0);//DOM對象</pre>
  • 原生 -> jQuery:用$()把DOM對象包起來,就可以轉(zhuǎn)化成jQuery對象,如:
    <pre>var p1 = document.getElementById('div1');//DOM對象 var $p1 = $(p1);//jQuery對象</pre>

4. jquery中如何綁定事件?bind、unbind、delegate、live、on、off都有什么作用?推薦使用哪種?使用on綁定事件使用事件代理的寫法?

綁定事件:在一個元素上增加一個事件類型和要實(shí)現(xiàn)的事件。綁定事件的方法有.bind()、.live()、.delegate()和.on()。.unbind()、.die()、.undelegate()和.off()分別是上述對應(yīng)的解除綁定的方法。

  • bind:為一個元素綁定一個事件處理程序,在jQuery3.0版本中,已被標(biāo)記為棄用。如:
    <pre>$("#btn").bind("click",function(){ console.log($(this).text()); });</pre>
  • unbind:用來解除bind綁定的事件。同樣在jQuery3.0版本中,標(biāo)記為棄用。如:
    <pre>$("#btn").unbind();</pre>
  • live:附加一個事件處理器到匹配目前選擇器的所有元素,現(xiàn)在和未來。在新版本中推薦用.on()方法,即時在舊版本中,也推薦使用.delegate()方法來取代.live()方法。如:
    <pre>$("#btn a").live("click",function(){ console.log($(this).text());//如果有新的a元素創(chuàng)建,也會觸發(fā)該事件。 });</pre>
  • delegate():為所有匹配選擇器(selector參數(shù))的元素綁定一個處理器到一個或多個事件處理函數(shù),基于一個指定的根元素的子集,匹配的元素包括那些目前已經(jīng)匹配到的元素,也包括那些今后可能匹配到的元素。在jQuery3.0中,delegate()也被標(biāo)記為棄用。如:
    <pre>$("#btn").delegate("click","a",function(){ console.log($(this).text());//事件冒泡到btn元素上,只有它的子元素a才會觸發(fā)。 });</pre>
  • on:在選定的元素上綁定一個或多個事件處理函數(shù)。它提供綁定事件處理的所有功能。如:
    <pre>$("#btn").on("click",function(){ console.log($"clicked"); });</pre>
  • off:移除.on()綁定的事件處理函數(shù)。
    <pre>$("#btn").off();</pre>
    推薦使用on():這個方法可以將以上各種事件綁定的方法都替代掉。
    on綁定事件代理:
    <pre>$("#btn").on("click","a",function(){ console.log($(this).text()); });</pre>

5. jquery 如何展示/隱藏元素?

  • 展示:
    語法:$(selector).show(speed,callback);
    可選的參數(shù)speed:規(guī)定元素從隱藏到完全可見的速度,默認(rèn)為0。
    可選的參數(shù)callback:show函數(shù)執(zhí)行完之后,要執(zhí)行的函數(shù)。
    本質(zhì)上show方法是修改元素的display為block。
    代碼如:
    <pre>$('#btn').on('click', function() { $('.div1').show(1000); // 表示以1s的速度顯示div });</pre>
  • 隱藏:
    語法:$(selector).hide(speed,callback);
    選的參數(shù)speed:規(guī)定元素從隱藏到完全可見的速度,默認(rèn)為0。
    可選的參數(shù)callback:show函數(shù)執(zhí)行完之后,要執(zhí)行的函數(shù)。
    本質(zhì)上show方法是修改元素的display為none。
    代碼:
    <pre>$('#btn').on('click', function() { $('.div1').hide(1000); // 表示以1s的速度隱藏div });</pre>

DEMO:http://htmlpreview.github.io/?https://github.com/jirengu-inc/jrg-renwu6/blob/master/homework/%E6%9D%8E%E7%AB%8B%E4%B8%BD/%E4%BB%BB%E5%8A%A125/%E9%97%AE%E7%AD%945.html

6. jquery 動畫如何使用?

jQuery animate() 方法用于創(chuàng)建自定義動畫。
語法:$(selector).animate({params},speed,callback);
必需的 params 參數(shù)定義形成動畫的 CSS 屬性。
可選的 speed 參數(shù)規(guī)定效果的時長。它可以取以下值:"slow"、"fast" 或毫秒。
可選的 callback 參數(shù)是動畫完成后所執(zhí)行的函數(shù)名稱。
如:
<pre>$("#btn").on("click",function(){ $(".div1").animate({ width:"100px",//寬度變?yōu)?00px height:"100px",//高度變?yōu)?00px left:"50px"http://向左移動50px },5000)//持續(xù)5秒 animate(){ //加入多個動畫 }; });</pre>

DEMO:http://htmlpreview.github.io/?https://github.com/jirengu-inc/jrg-renwu6/blob/master/homework/%E6%9D%8E%E7%AB%8B%E4%B8%BD/%E4%BB%BB%E5%8A%A125/%E9%97%AE%E7%AD%946.html

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

  • 用html()方法可以設(shè)置和獲取元素內(nèi)部HTML內(nèi)容。
    <pre>console.log($("#test").html());//獲取內(nèi)部html console.log($("#test").html("<span>hello</span>"));//改變內(nèi)部html</pre>
  • 用text()方法可以設(shè)置和獲取元素內(nèi)部文本內(nèi)容。
    <pre>console.log($("#test").text());//獲取內(nèi)部text console.log($("#test").text("改變text"));//改變內(nèi)部text值</pre>

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

  • 通過val()方法可以設(shè)置和獲取表單用戶輸入或者選擇的內(nèi)容
    <pre>console.log($('.text1').val()); //獲得class為text1 console.log($('.text1').val('饑人谷'));//</pre>

  • 通過attr() 方法可以設(shè)置或返回元素的屬性
    <pre>console.log($('#img').attr('src')); // console.log($('#img').attr('data-src','./images/1.png'));//</pre>

DEMO:http://htmlpreview.github.io/?https://github.com/jirengu-inc/jrg-renwu6/blob/master/homework/%E6%9D%8E%E7%AB%8B%E4%B8%BD/%E4%BB%BB%E5%8A%A125/%E9%97%AE%E7%AD%947%268.html

本文版權(quán)歸本人和饑人谷所有,轉(zhuǎn)載請注明來源。

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

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

  • 問答 1.說說庫和框架的區(qū)別? 類庫(Class Library):類庫就是一些類的集合,只要我們將一些可以復(fù)用的...
    鴻鵠飛天閱讀 298評論 0 1
  • 問答 1、說說庫和框架的區(qū)別? 庫Library ( 簡寫 Lib ),庫是將代碼集合成的一個產(chǎn)品,供程序員調(diào)用。...
    咸吧閱讀 204評論 0 1
  • 問答部分 一、說說庫和框架的區(qū)別? 庫~是一個提供了封裝好很多方法的工具,在這個工具里面,用與不用都是由你決定,控...
    dengpan閱讀 421評論 1 2
  • 題目1: jQuery 能做什么? 方便快捷獲取DOM元素如果使用純JavaScript的方式來遍歷DOM以及查找...
    Taaaaaaaurus閱讀 327評論 0 1
  • 問答: 1.說說庫和框架的區(qū)別? 庫就是一些已經(jīng)封裝好了的函數(shù),這些函數(shù)可以實(shí)現(xiàn)特定的效果,只需要在使用的時候用少...
    饑人谷_任磊閱讀 282評論 0 1

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