jQuery 能做什么拣宏?
jQuery 是一個 JavaScript 庫,它提供了一些方便使用的 API,能讓一些繁復(fù)的 JavaScript 工作變得簡單站削,比如:HTML 文檔元素的遍歷和操作、事件的處理孵稽、動畫效果许起、Ajax 請求等。jQuery 將這些功能都封裝起來菩鲜,并且這些功能都是跨瀏覽器的园细,讓你不用再操心那些細節(jié),不用為瀏覽器兼容性發(fā)愁接校,輕松愉快的完成你的 web application.
jQuery 對象和 DOM 原生對象有什么區(qū)別猛频?如何轉(zhuǎn)化狮崩?
jQuery對象是一個類似數(shù)組的對象,在jQuery對象中無法使用DOM對象的任何方法鹿寻,DOM對象也不能使用jQuery中的方法睦柴。
- 將jQuery對象轉(zhuǎn)化為DOM對象:
- 通過[index]的方法得到響應(yīng)的DOM對象。如
$('#content')[0]
是一個DOM對象相 - 通過get(index)方法得到相應(yīng)的DOM對象毡熏。如
$('#content').get[0]
- DOM對象轉(zhuǎn)化為jQuery對象:
- 對于一個DOM對象坦敌,只需要用$()把DOM對象包裝起來,就可以獲得一個jQuery對象了痢法。
jQuery中如何綁定事件狱窘?bind、unbind疯暑、delegate训柴、live、on妇拯、off都有什么作用幻馁?推薦使用哪種?使用on綁定事件使用事件代理的寫法越锈?
- 可以直接使用.click( handler(eventObject) )的形式來為jQuery對象綁定事件仗嗦。
-
.bind( eventType [, eventData ], handler(eventObject) )
bind() 方法向被選元素添加一個或多個事件處理程序,以及當(dāng)事件發(fā)生時運行的函數(shù)甘凭。 -
$(selector).unbind(event,function,eventObj)
unbind() 方法移除被選元素的事件處理程序稀拐。該方法能夠移除所有的或被選的事件處理程序,或者當(dāng)事件發(fā)生時終止指定函數(shù)的運行丹弱。該方法也可以通過 event 對象取消綁定的事件處理程序德撬。該方法也用于對自身內(nèi)部的事件取消綁定(比如當(dāng)事件已被觸發(fā)一定次數(shù)之后,刪除事件處理程序)躲胳。 -
$(selector).delegate(childSelector,event,data,function)
delegate() 方法為指定的元素(屬于被選元素的子元素)添加一個或多個事件處理程序蜓洪,并規(guī)定當(dāng)這些事件發(fā)生時運行的函數(shù)。使用 delegate() 方法的事件處理程序適用于當(dāng)前或未來的元素(比如由腳本創(chuàng)建的新元素)坯苹。 -
$(selector).live(event,data,function)
live() 方法為被選元素添加一個或多個事件處理程序隆檀,并規(guī)定當(dāng)這些事件發(fā)生時運行的函數(shù)。通過 live() 方法添加的事件處理程序適用于匹配選擇器的當(dāng)前及未來的元素(比如由腳本創(chuàng)建的新元素)粹湃。live() 方法在 jQuery 版本 1.7 中被廢棄恐仑,在版本 1.9 中被移除。請使用 on() 方法代替为鳄。 -
jQueryObject.on( events [, selector ] [, data ], handler )
jQueryObject.on( eventsMap [, selector ] [, data ] )
on() 方法在被選元素及子元素上添加一個或多個事件處理程序裳仆。
參數(shù) | 描述 |
---|---|
events | String類型一個或多個用空格分隔的事件類型和可選的命名空間,例如"click"孤钦、"focus click"歧斟、"keydown.myPlugin"记某。 |
eventsMap | Object類型一個Object對象,其每個屬性對應(yīng)事件類型和可選的命名空間(參數(shù)events)构捡,屬性值對應(yīng)綁定的事件處理函數(shù)(參數(shù)handler)液南。 |
selector | 可選/String類型一個jQuery選擇器,用于指定哪些后代元素可以觸發(fā)綁定的事件勾徽。如果該參數(shù)為null或被省略滑凉,則表示當(dāng)前元素自身綁定事件(實際觸發(fā)者也可能是后代元素,只要事件流能到達當(dāng)前元素即可)喘帚。 |
data | 可選/任意類型觸發(fā)事件時畅姊,需要通過event.data傳遞給事件處理函數(shù)的任意數(shù)據(jù)。 |
handler | Function類型指定的事件處理函數(shù)吹由。 |
自 jQuery 版本 1.7 起若未,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品倾鲫。該方法給 API 帶來很多便利粗合,我們推薦使用該方法,它簡化了 jQuery 代碼庫乌昔。
-
jQueryObject.off( [ events [, selector ] [, handler ] ] )
jQueryObject.off( eventsMap [, selector ] ) - off()函數(shù)將會移除當(dāng)前匹配元素上為后代元素selector綁定的events事件的事件處理函數(shù)handler隙疚。
- 如果省略參數(shù)selector,則移除為任何元素綁定的事件處理函數(shù)磕道。
- 參數(shù)selector必須與通過on()函數(shù)添加綁定時傳入的選擇器一致供屉。
- 如果省略參數(shù)handler,則移除指定元素指定事件類型上綁定的所有事件處理函數(shù)溺蕉。
- 如果省略了所有參數(shù)伶丐,則表示移除當(dāng)前元素上為任何元素綁定的任何事件類型的任何事件處理函數(shù)。
推薦使用on和off疯特,on綁定事件使用事件代理的寫法:
$('ul').on('click','li',function(){代理的綁定事件})
題目4:jQuery 如何展示/隱藏元素哗魂?
函數(shù) | 描述 |
---|---|
.show([speed], [callback]) | 顯示元素 |
.hide([speed], [callback]) | 隱藏元素 |
.toggle([speed], [callback]) | 顯示隱藏元素,隱藏顯示元素 |
.fadeIn([speed], [callback]) | 淡入顯示隱藏元素 |
.fadeOut([speed], [callback]) | 淡出隱藏顯示元素 |
.fadeToggle([speed], [callback]) | 淡入淡出的顯示隱藏元素辙芍,隱藏顯示元素 |
.fadeTo(speed, opacity啡彬,[callback]) | 淡入淡出效果設(shè)置為給定的不透明度 |
.slideUp([speed], [callback]) | 以滑動的方式隱藏顯示的元素 |
.slideDown([speed], [callback]) | 以滑動的方式隱藏顯示的元素 |
speed:規(guī)定速度羹与,取值:'slow', 'normal', 'fast'或毫秒
callback:顯示或隱藏后執(zhí)行的函數(shù)
opacity:透明度(0~1)
題目5: jQuery 動畫如何使用故硅?
jquery動畫可使用.animate()方法;
(selector).animate({styles},speed,easing,callback)
- 必須參數(shù) styles 參數(shù)定義形成動畫的 CSS 屬性纵搁。
- 可選的 speed 參數(shù)規(guī)定效果的時長吃衅。它可以取以下值:"slow"、"fast" 或毫秒腾誉。
- 可選的 easing 可選徘层。規(guī)定在動畫的不同點中元素的速度峻呕。默認(rèn)值-
是"swing"。"swing" - 在開頭/結(jié)尾移動慢趣效,在中間移動快瘦癌。"linear" - 勻速移動 - 可選的 callback 參數(shù)是動畫完成后所執(zhí)行的函數(shù)名稱。
如何設(shè)置和獲取元素內(nèi)部 HTML 內(nèi)容跷敬?如何設(shè)置和獲取元素內(nèi)部文本讯私?
$(selector).html(HTMLString)
$(selector).html()
$(selector).text(textString)
$(selector).text()
如何設(shè)置和獲取表單用戶輸入或者選擇的內(nèi)容?如何設(shè)置和獲取元素屬性西傀?
$(selector).val(string)
$(selector).val()
$(selector).attr(attributeName, attributeValue)
$(selector).attr(attributeName)
- 設(shè)置disabled和checked等這些只添加屬性名就能生效的屬性時斤寇,應(yīng)該使用prop方法,如
$('input').prop('disabled', true)
拥褂。注意property與attribute區(qū)別娘锁。 - 對于單選、多選饺鹃、下拉框
$(':radio[value=he]').prop('checked', true)
等價于$(':radio[name=username]').val(['he'])
1
1
1
1
1
1
11
1
1
1
1
1
1
1
1
1