jQuery 入門1

題目1: jQuery 能做什么?

選擇網(wǎng)頁元素
改變結(jié)果集
元素的操作:取值和賦值
元素的操作:移動
元素的操作:復(fù)制、刪除和創(chuàng)建
工具方法
事件操作
特殊效果
AJAX
http://devdocs.io/jquery/

題目2: jQuery 對象和 DOM 原生對象有什么區(qū)別?如何轉(zhuǎn)化?

  • 聯(lián)系:

    1. jQuery對象:通過jQuery包裝DOM對象后產(chǎn)生的對象;
    2. 兩者之間可以相互轉(zhuǎn)換;
  • 區(qū)別:

    1. jquery選擇器得到的jquery對象和標(biāo)準(zhǔn)的 javascript中的document.getElementById()取得的dom對象是兩種不同的對象類型,兩者不等價;
    2. jQuery無法使用DOM對象的任何方法,同理DOM對象也不能使用jQuery里的方法. 亂使用會報錯。
  • 相互轉(zhuǎn)換:

    • jQuery對象轉(zhuǎn)成DOM對象

      1. jQuery對象是一個數(shù)據(jù)對象,通過[index]的方法
      var $v = $("#v")  //  jQuery對象
      var v = $v[0]  //  DOM對象
      
      1. jQuery本身提供,通過.get(index)方法
      var $v = $("#v")  //  jQuery對象
      var v = $v.get(0)  //  DOM對象
      
    • DOM對象轉(zhuǎn)成jQuery對象:
      對于DOM對象,只需用$()把DOM對象包裝起來,就可得到j(luò)Query對象

      var v=document.getElementById("v")  //  DOM對象
      var $v=$(v)  //  jQuery對象
      

題目3:jQuery中如何綁定事件?bind、unbind、delegate、live、on、off都有什么作用?推薦使用哪種?使用on綁定事件使用事件代理的寫法?

如何綁定事件


  • bind(type,[data],fn)
    為每個匹配元素的特定事件綁定事件處理函數(shù)。
    jQuery 3.0中已棄用此方法,請用 on()代替。

    • type: 含有一個或多個事件類型的字符串,由空格分隔多個事件。比如"click"或"submit",還可以是自定義事件名。
    • data: 作為event.data屬性值傳遞給事件對象的額外數(shù)據(jù)對象
    • fn: 綁定到每個匹配元素的事件上面的處理函數(shù)
  • unbind(type,[data|fn]])
    bind()的反向操作,從每一個匹配的元素中刪除綁定的事件。
    jQuery 3.0中已棄用此方法,請用 off()代替。
    如果沒有參數(shù),則刪除所有綁定的事件。
    你可以將你用bind()注冊的自定義事件取消綁定。
    如果提供了事件類型作為參數(shù),則只刪除該類型的綁定事件。
    如果把在綁定時傳遞的處理函數(shù)作為第二個參數(shù),則只有這個特定的事件處理函數(shù)會被刪除。

    • type: 刪除元素的一個或多個事件,由空格分隔多個事件值。
    • fn: 要從每個匹配元素的事件中反綁定的事件處理函數(shù)
  • delegate(selector,[type],[data],fn)
    指定的元素(屬于被選元素的子元素)添加一個或多個事件處理程序,并規(guī)定當(dāng)這些事件發(fā)生時運(yùn)行的函數(shù)。
    jQuery 3.0中已棄用此方法,請用 on()代替。
    使用 delegate() 方法的事件處理程序適用于當(dāng)前或未來的元素(比如由腳本創(chuàng)建的新元素)。

    • selector: 選擇器字符串,用于過濾器觸發(fā)事件的元素。
    • type: 附加到元素的一個或多個事件。由空格分隔多個事件值。必須是有效的事件。
    • data: 傳遞到函數(shù)的額外數(shù)據(jù)
    • fn: 當(dāng)事件發(fā)生時運(yùn)行的函數(shù)
  • live(type, [data], fn)
    jQuery 給所有匹配的元素附加一個事件處理函數(shù),即使這個元素是以后再添加進(jìn)來的也有效。
    這個方法是基本是的.bind()方法的一個變體。使用 .bind()時,選擇器匹配的元素會附加一個事件處理函數(shù),而以后再添加的元素則不會有。為此需要再使用一次 .bind()才行
    從 jQuery 1.7 開始,不再建議使用.live()方法。請使用.on()來添加事件處理。使用舊版本的用戶,應(yīng)該優(yōu)先使用 .delegate()來替代.live()

    • type: 一個或多個事件類型,由空格分隔多個事件
    • data: 傳遞給事件處理函數(shù)的附加參數(shù)
    • fn: 要從每個匹配元素的事件中反綁定的事件處理函數(shù)
  • on(events,[selector],[data],fn)
    在選擇元素上綁定一個或多個事件的事件處理函數(shù)。
    on()方法綁定事件處理程序到當(dāng)前選定的jQuery對象中的元素。在jQuery 1.7中,.on()方法 提供綁定事件處理程序所需的所有功能。

    • events: 一個或多個用空格分隔的事件類型和可選的命名空間,如"click"或"keydown.myPlugin" 。
    • selector: 一個選擇器字符串用于過濾器的觸發(fā)事件的選擇器元素的后代。如果選擇的< null或省略,當(dāng)它到達(dá)選定的元素,事件總是觸發(fā)。
    • data: 當(dāng)一個事件被觸發(fā)時要傳遞event.data給事件處理函數(shù)。
    • fn: 該事件被觸發(fā)時執(zhí)行的函數(shù)。 false 值也可以做一個函數(shù)的簡寫,返回false。
  • off(events,[selector],[fn])
    在選擇元素上移除一個或多個事件的事件處理函數(shù)。

    • events: 一個或多個空格分隔的事件類型和可選的命名空間,或僅僅是命名空間,比如"click", "keydown.myPlugin", 或者 ".myPlugin".
    • selector: 一個最初傳遞到.on()事件處理程序附加的選擇器。
    • fn: 事件處理程序函數(shù)以前附加事件上,或特殊值false.

推薦使用哪種

推薦使用.on()因為提供綁定事件處理程序所需的所有功能


使用on綁定事件使用事件代理的寫法

<ul>
    <li></li>
    <li></li>
    <li></li>
</ul>
  $('ul').on('click','li',function(){})
  //  選擇父容器綁定事件,再在選擇器中選擇目標(biāo)元素

題目4:jQuery 如何展示/隱藏元素?

  • hide([speed,[easing],[fn]])
    隱藏顯示的元素

    • speed: 三種預(yù)定速度之一的字符串("slow","normal", or "fast")或表示動畫時長的毫秒數(shù)值(如:1000)
    • easing: (Optional) 用來指定切換效果,默認(rèn)是"swing",可用參數(shù)"linear"
    • fn: 在動畫完成時執(zhí)行的函數(shù),每個元素執(zhí)行一次。
  • show(([speed,[easing],[fn]])
    顯示隱藏的匹配元素。

    • speed: 三種預(yù)定速度之一的字符串("slow","normal", or "fast")或表示動畫時長的毫秒數(shù)值(如:1000)
    • easing: (Optional) 用來指定切換效果,默認(rèn)是"swing",可用參數(shù)"linear"
    • fn: 在動畫完成時執(zhí)行的函數(shù),每個元素執(zhí)行一次。
  • toggle([speed],[easing],[fn]
    如果元素是可見的,切換為隱藏的;如果元素是隱藏的,切換為可見的。

    • speed: 隱藏/顯示 效果的速度。默認(rèn)是 "0"毫秒。可能的值:slow,normal,fast。"
    • easing: (Optional) 用來指定切換效果,默認(rèn)是"swing",可用參數(shù)"linear"
    • fn: 在動畫完成時執(zhí)行的函數(shù),每個元素執(zhí)行一次。

  • slideDown([speed],[easing],[fn])
    通過高度變化(向下增大)來動態(tài)地顯示所有匹配的元素,在顯示完成后可選地觸發(fā)一個回調(diào)函數(shù)。

  • slideUp([speed,[easing],[fn]])
    通過高度變化(向上減小)來動態(tài)地隱藏所有匹配的元素,在隱藏完成后可選地觸發(fā)一個回調(diào)函數(shù)。

  • slideToggle([speed],[easing],[fn])
    通過高度變化來切換所有匹配元素的可見性,并在切換完成后可選地觸發(fā)一個回調(diào)函數(shù)。

  • fadeIn([speed],[easing],[fn])
    通過不透明度的變化來實現(xiàn)所有匹配元素的淡入效果,并在動畫完成后可選地觸發(fā)一個回調(diào)函數(shù)。

  • fadeOut([speed],[easing],[fn])
    通過不透明度的變化來實現(xiàn)所有匹配元素的淡出效果,并在動畫完成后可選地觸發(fā)一個回調(diào)函數(shù)。

  • fadeToggle([speed,[easing],[fn]])
    通過不透明度的變化來開關(guān)所有匹配元素的淡入和淡出效果,并在動畫完成后可選地觸發(fā)一個回調(diào)函數(shù)。

  • fadeTo([[speed],opacity,[easing],[fn]])

    • speed: 三種預(yù)定速度之一的字符串("slow","normal", or "fast")或表示動畫時長的毫秒數(shù)值(如:1000)
    • opacity: 一個0至1之間表示透明度的數(shù)字。
    • easing: (Optional) 用來指定切換效果,默認(rèn)是"swing",可用參數(shù)"linear"
    • fn: 在動畫完成時執(zhí)行的函數(shù),每個元素執(zhí)行一次。

題目5: jQuery 動畫如何使用?

animate(params,[speed],[easing],[fn])

用于創(chuàng)建自定義動畫的函數(shù)。

這個函數(shù)的關(guān)鍵在于指定動畫形式及結(jié)果樣式屬性對象。這個對象中每個屬性都表示一個可以變化的樣式屬性(如heighttopopacity)。注意:所有指定的屬性必須用駱駝形式,比如用marginLeft代替margin-left

而每個屬性的值表示這個樣式屬性到多少時動畫結(jié)束。如果是一個數(shù)值,樣式屬性就會從當(dāng)前的值漸變到指定的值。如果使用的是hideshowtoggle這樣的字符串值,則會為該屬性調(diào)用默認(rèn)的動畫形式。

jQuery 1.2 中,你可以使用 em% 單位
jQuery 1.2 中,你可以通過在屬性值前面指定+- 來讓元素做相對運(yùn)動
jQuery 1.3中,如果duration設(shè)為0則直接完成動畫。而在以前版本中則會執(zhí)行默認(rèn)動畫。
jQuery 1.8中,當(dāng)你使用CSS屬性在css()animate()中,將根據(jù)瀏覽器自動加上前綴(在適當(dāng)?shù)臅r候),比如("user-select", "none"); 在Chrome/Safari瀏覽器將設(shè)置為"-webkit-user-select", Firefox會使用"-moz-user-select", IE10將使用"-ms-user-select".


  • 參數(shù)
    • params: 一組包含作為動畫屬性和終值的樣式屬性和及其值的集合
    • speed: 三種預(yù)定速度之一的字符串("slow","normal", or "fast")或表示動畫時長的毫秒數(shù)值(如:1000)
    • easing: 要使用的擦除效果的名稱(需要插件支持).默認(rèn)jQuery提供"linear" 和 "swing".
    • fn: 在動畫完成時執(zhí)行的函數(shù),每個元素執(zhí)行一次。

  • stop([clearQueue],[jumpToEnd])
    停止所有在指定元素上正在運(yùn)行的動畫。
    如果隊列中有等待執(zhí)行的動畫(并且clearQueue沒有設(shè)為true),他們將被馬上執(zhí)行

    • clearQueue: 如果設(shè)置成true,則清空隊列。可以立即結(jié)束動畫。
    • gotoEnd: 讓當(dāng)前正在執(zhí)行的動畫立即完成,并且重設(shè)show和hide的原始樣式,調(diào)用回調(diào)函數(shù)等。
  • finish( [queue ] )
    停止當(dāng)前正在運(yùn)行的動畫,刪除所有排隊的動畫,并完成匹配元素所有的動畫。
    當(dāng).finish()在一個元素上被調(diào)用,立即停止當(dāng)前正在運(yùn)行的動畫和所有排隊的動畫(如果有的話),并且他們的CSS屬性設(shè)置為它們的目標(biāo)值(所有動畫的目標(biāo)值)。所有排隊的動畫將被刪除。

    • queue:停止動畫隊列中的名稱。
  • delay(duration,[queueName])
    設(shè)置一個延時來推遲執(zhí)行隊列中之后的項目。

    • duration: 延時時間,單位:毫秒
    • queueName: 隊列名詞,默認(rèn)是Fx,動畫隊列

題目6:如何設(shè)置和獲取元素內(nèi)部 HTML 內(nèi)容?如何設(shè)置和獲取元素內(nèi)部文本?

  • html([val|fn])
    取得第一個匹配元素的html內(nèi)容。這個函數(shù)不能用于XML文檔。但可以用于XHTML文檔。
    在一個 HTML 文檔中, 我們可以使用 .html() 方法來獲取任意一個元素的內(nèi)容。 如果選擇器匹配多于一個的元素,那么只有第一個匹配元素的 HTML 內(nèi)容會被獲取。

    • val:用于設(shè)定HTML內(nèi)容的值
    • fn:此函數(shù)返回一個HTML字符串。接受兩個參數(shù),index為元素在集合中的索引位置,html為原先的HTML值。
  • text([val|fn])
    取得所有匹配元素的內(nèi)容。
    結(jié)果是由所有匹配元素包含的文本內(nèi)容組合起來的文本。這個方法對HTML和XML文檔都有效。

    • val:用于設(shè)置元素內(nèi)容的文本
    • fn:此函數(shù)返回一個字符串。接受兩個參數(shù),index為元素在集合中的索引位置,text為原先的text值

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

  • val([val|fn|arr])
    獲得匹配元素的當(dāng)前值。
    • val:要設(shè)置的值
    • fn:此函數(shù)返回一個要設(shè)置的值。接受兩個參數(shù),index為元素在集合中的索引位置,text為原先的text值。
    • arr:用于 check/select 的值

  • attr(name|properties|key,value|fn)
    設(shè)置或返回被選元素的屬性值。

    • name:屬性名稱
    • properties:作為屬性的“名/值對”對象
    • key,value:屬性名稱,屬性值
    • fn:返回屬性值的函數(shù),第一個參數(shù)為當(dāng)前元素的索引值,第二個參數(shù)為原先的屬性值。
  • removeAttr(name)
    從每一個匹配的元素中刪除一個屬性

    • name:要刪除的屬性名
  • css(name|pro|[,val|fn])
    訪問匹配元素的樣式屬性。
    • name:一個或多個CSS屬性組成的一個數(shù)組
    • pro:要設(shè)置為樣式屬性的名/值對
    • val:屬性名
    • fn:此函數(shù)返回要設(shè)置的屬性值。接受兩個參數(shù),index為元素在對象集合中的索引位置,value是原先的屬性值。

題目8: 使用 jQuery實現(xiàn)如下效果

效果 - 鏈接

題目9: 使用 jQuery 實現(xiàn)如下效果

效果 - 鏈接

題目10: 使用 jQuery 實現(xiàn)如下效果

效果 - 鏈接

題目11: 使用 jQuery 實現(xiàn)如下效果

效果 - 鏈接

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

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

  • 1.JQuery 基礎(chǔ) 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式。設(shè)計者無需花費(fèi)時間糾纏JS復(fù)雜的高級特性。 1....
    LaBaby_閱讀 1,367評論 0 2
  • 1.JQuery 基礎(chǔ) 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式。設(shè)計者無需花費(fèi)時間糾纏JS復(fù)雜的高級特性。 1....
    LaBaby_閱讀 1,200評論 0 1
  • jQuery jQuery就是JS的一個擴(kuò)展庫,工具庫,提供很多方便快捷的方法,所以將JS對象轉(zhuǎn)換為jQuery對...
    YQY_苑閱讀 242評論 0 1
  • 原文鏈接 http://blog.poetries.top/2016/10/20/review-jQuery 關(guān)注...
    前端進(jìn)階之旅閱讀 16,675評論 18 503
  • $(”p”).addClass(css中定義的樣式類型); 給某個元素添加樣式 $(”img”).attr({sr...
    專注寒冰三千歲閱讀 513評論 0 4