jQurey基本

題目1: jQuery 能做什么?

jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之后又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝JavaScript常用的功能代碼,提供一種簡便的JavaScript設計模式,優化HTML文檔操作、事件處理、動畫設計和Ajax交互。
jQuery的核心特性可以總結為:具有獨特的鏈式語法和短小清晰的多功能接口;具有高效靈活的css選擇器,并且可對CSS選擇器進行擴展;擁有便捷的插件擴展機制和豐富的插件。

題目2: jQuery 對象和 DOM 原生對象有什么區別?如何轉化?

由于jQuery $封裝的方法返回的是一個類數組對象,所以jQuery對象只能用jQuery封裝的方法,不能用原生對象的方法,如果要用原生對象的方法,必須把jQuery對象轉換為原生對象。DOM原生對象同理。
如何轉換: jQuery => DOM 原生對象

$('div').[0]  // 選取返回的類數組對象的具體下標

DOM =>jQuery原生對象

$(document.querySelector('div')) //用$包裹住

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

在jQuery3.0中,可以用on來綁定事件,off來解除綁定(也建議用這種方式,其余的已不推薦使用或者廢棄)

$('div').on('click',function(){...})    //最基本的用法

根據jQuery3.0版本:
1.bind

綁定事件
.bind( eventType [, eventData ], handler(eventObject) )
eventType
類型: String
一個包含一個或多個DOM事件類型的字符串,比如"click"或"submit,"或自定義事件的名稱。
eventData
類型: Anything
一個對象,它包含的數據鍵值對映射將被傳遞給事件處理程序。
handler(eventObject)
類型: Function()
每當事件觸發時執行的函數。

.bind()一個基本的用法:

$('#foo').bind('click', function() {
  alert('User clicked on "foo."');
});

2.unbind

.unbind( eventType [, handler ] )
eventType
類型: String
一個包含一個或多個 DOM 事件類型的字符串,比如 "click" 或 "submit," 或自定義的事件名。
handler
類型: Function( Event eventObject )
這個函數今后不在執行。

unbind() 可以解除元素綁定的事件,最簡單的方法是:

$('div').unbind(); //解除元素所有的綁定事件

3.delegate()

.delegate( selector, eventType, handler(eventObject)
描述: 為所有匹配選擇器(selector參數)的元素綁定一個或多個事件處理函數,基于一個指定的根元素的子集,匹配的元素包括那些目前已經匹配到的元素,也包括那些今后可能匹配到的元素。
添加的版本: 1.4.2.delegate( selector, eventType, handler(eventObject) )
selector
類型: String
選擇器字符串,用于過濾器觸發事件的元素。
eventType
類型: String
一個包含一個或多個用空格隔開的JavaScript事件類型的字符串,比如"click"或"keydown,"或自定義事件的名稱。
handler(eventObject)
類型: Function()
每當事件觸發時執行的函數。

4.live()

描述: 附加一個事件處理器到匹配目前選擇器的所有元素,現在和未來。
添加的版本: 1.3.live( events, handler(eventObject) )
events
類型: String
一個包含一個JavaScript事件類型的字符串,比如"click"或"keydown,"或自定義事件的名稱。從jQuery 1.4開始,字符串可以包含多個空格分隔的事件類型或自定義事件的名稱。
handler(eventObject)
類型: Function()
每當事件觸發時執行的函數。

5.on()

綁定事件
.on( events [, selector ] [, data ], handler(eventObject) )
events
類型: String
一個或多個空格分隔的事件類型和可選的命名空間,或僅僅是命名空間,比如"click", "keydown.myPlugin", 或者 ".myPlugin"。
selector
類型: String
一個選擇器字符串,用于過濾出被選中的元素中能觸發事件的后代元素。如果選擇器是 null
或者忽略了該選擇器,那么被選中的元素總是能觸發事件。
data
類型: Anything
當一個事件被觸發時,要傳遞給事件處理函數的event.data

handler(eventObject)
類型: Function()
事件被觸發時,執行的函數。若該函數只是要執行return false的話,那么該參數位置可以直接簡寫成 false。

形式

$('div').on('click',function(){...})    //最基本的用法
$('div').on('click','div后代元素',data,function(){...}) 

6.off

events
類型: String
一個或多個空格分隔的事件類型和可選的命名空間,或僅僅是命名空間,比如"click", "keydown.myPlugin", 或者 ".myPlugin"。
selector
類型: String
一個選擇器,當綁定事件處理程序時匹配最初傳遞給 .on()
的那個。
handler
類型: Function( Event eventObject )
以前附加的事件處理函數,或特殊值false
用來解除on綁定事件

建議使用on off 來綁定和解除綁定事件

關于on 事件代理的寫法

$('div').on('click','div要綁定的后代元素',data,function(){...}) 

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

jQuery 可以用以下幾種方式來展示/隱藏元素
.show() 來展示元素
.hide()來隱藏元素
.css("display","none");
.css("display","block");
.addClass()
.removeClass()

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

jQuery提供了如下API來實現動畫效果
1.基礎
.show() //顯示
.hide() //隱藏
.toggle() //切換

2.提供了四種漸變方法和三種滑動方法

漸變
.fadeIn()
.fadeOut()
.fadeTo()
.fadeToggle()

滑動
.slideDown()
.slideToggle()
.slideUp()

3.自定義方法
.animate()
.clearQueue()
.delay()
.dequeue()
jQuery.dequeue()
.finish()
jQuery.fx.interval
jQuery.fx.off
.queue()
jQuery.queue()
.stop() //停止匹配元素當前正在運行的動畫,finish()停止所有動畫,刪除動畫隊列

一般情況 可以傳遞以下參數
1.duration
控制動畫時間 默認normal 還有fast slow
2.easing
一個字符串,表示過渡使用哪種緩動函數。(jQuery自身提供"linear" 和 "swing")
3.queue
一個布爾值,指示是否將動畫放置在效果隊列中。如果為false時,將立即開始動畫。 從jQuery1.7開始,隊列選項也可以接受一個字符串,在這種情況下,在動畫被添加到由該字符串表示的隊列中。當一個自定義的隊列名稱被使用,動畫不會自動啟動;你必須調用.dequeue("queuename")來啟動它。
4.specialEasing
Type: PlainObject
由此方法的第一個參數properties定義的一個或多個CSS屬性,及其相應的緩動函數組成的鍵值對map。( 1.4 新增)
5.complete
Type: Function()
在動畫完成時執行的函數。

舉例

$('div').show(2000,linear,function(){...})

注意:.animate()方法允許我們在任意的數值的CSS屬性上創建動畫。唯一必要的屬性就是一組CSS屬性鍵值對。這組屬性和用于設置.css()方法的屬性鍵值對類似,除了屬性范圍做了更多限制。

題目6:如何設置和獲取元素內部 HTML 內容?如何設置和獲取元素內部文本?

$('div').html()     
$('div').html('<p>11</p>')      //用html()方法獲取元素內部html內容,傳入值可以設置html內容
$('div').text()
$('div').text('11')         //用text()方法獲取內部文本內容,傳入值可以設置文本內容

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

$('div').val()         //獲取元素當前值的內容
$('div').val('123')         //設置當前值的內容
$('div').attr('id')         //獲取元素id屬性
$('div').attr('id','one')         //設置元素id屬性
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,673評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,610評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,668評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,004評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,173評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,705評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,426評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,656評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,833評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,371評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,621評論 2 380

推薦閱讀更多精彩內容