1. jquery 能做什么?
jquery是一個js工具類庫,封裝了常用的DOM操作方法,有更好的兼容性,利用jquery提供的api,可以完成以下工作:
- 完成DOM的增刪改查等操作
- 事件綁定操作
- 樣式修改
- 方便的動畫設(shè)置
- ajax操作
- 多種第三方插件可以使用
2. jQuery 對象和 DOM 原生對象有什么區(qū)別?如何轉(zhuǎn)化?
DOM原生對象就是一個對象,jQuery對象是一個類數(shù)組對象。
jQuery對象轉(zhuǎn)化成DOM對象我們可以通過類數(shù)組下標的獲取方式或者get方法獲取指定index的DOM對象
$('div')[0]
$('div').get()
DOM對象轉(zhuǎn)化成jQuery對象只需用$()把DOM對象封裝起來,就可得到j(luò)Query對象
var div = document.querySelector('div')
$(div)
3. jQuery中如何綁定事件?bind、unbind、delegate、live、on、off都有什么作用?推薦使用哪種?使用on綁定事件使用事件代理的寫法?
jQuery中可以使用bind delegate live on來綁定事件
bind():為被選元素添加一個或多個事件處理程序,并規(guī)定事件發(fā)生時運行的函數(shù)。(從jQuery 3.0 開始已被棄用,用.on()代替)
unbind():移除所有的或被選的事件處理程序,或者當(dāng)事件發(fā)生時終止指定函數(shù)的運行,(從jQuery 3.0 開始已被棄用,用.off()代替)
delegate():為匹配的元素添加一個或多個事件處理程序,并規(guī)定當(dāng)這些事件發(fā)生時運行的函數(shù),(從jQuery 3.0 開始已被棄用,用.on()代替)
live():為被選元素附加一個或多個事件處理程序,并規(guī)定當(dāng)這些事件發(fā)生時運行的函數(shù)。(從jQuery 1.7開始已被棄用,用.on()代替)
on():在被選元素及子元素上添加一個或多個事件處理程序。(推薦使用)
off():用于移除通過 on() 方法添加的事件處理程序。(推薦使用)
使用on綁定事件使用事件代理:
$('ul.musicList').on('click','li',function() {
console.log($(this).text())
})
4. jQuery 如何展示/隱藏元素?
- 為元素添加或移除新的class,提前設(shè)置好class的隱藏屬性
.active {
display:none;
}
$('button').toggleClass('active')
- 使用toggle()來切換展示和隱藏元素
$('button').toggle()
- 使用show() 和 hide()來展示和隱藏元素
$('button').show();
$('button').hide();
類似的還可以使用slideUp()和slideDown()以及fadeIn()和 fadeOut()來實現(xiàn)隱藏。
5. jQuery 動畫如何使用?
.animate( properties [, duration ] [, easing ] [, complete ] )
properties:一個CSS屬性和值的對象,動畫將根據(jù)這組對象移動。
duration (默認: 400):一個字符串或者數(shù)字決定動畫將運行多久。有三種預(yù)定速度的字符串("slow", "normal", 或 "fast")或表示動畫時長的毫秒數(shù)值(如:1000)
easing (默認: swing):一個字符串,表示過渡使用哪種緩動函數(shù)
complete:在動畫完成時執(zhí)行的函數(shù)
6. 如何設(shè)置和獲取元素內(nèi)部 HTML 內(nèi)容?如何設(shè)置和獲取元素內(nèi)部文本?
- $().html()獲取html內(nèi)容
- $().text()獲取文本內(nèi)容
$('div').html() //無參數(shù),用于返回元素的innerHTML
$('div').html(string) //有參數(shù),設(shè)置元素為內(nèi)部HTML內(nèi)容
$('div').text() //無參數(shù),用于返回元素的innerText
$('div').text(string) //有參數(shù),設(shè)置元素的內(nèi)部文本
7. 如何設(shè)置和獲取表單用戶輸入或者選擇的內(nèi)容?如何設(shè)置和獲取元素屬性?
var $input = $('#input');
$input.val('123') //設(shè)置input的value
$input.val() //獲取input的value
$input.attr('type') //獲取input的type屬性
$input.attr('type','password') //設(shè)置input的type屬性為password