題目1: 說說庫和框架的區(qū)別?
庫: 類似于小工具的集合,需要用的時候直接調(diào)用就可以诊杆,作用是簡化流程
框架:類似于房子的構(gòu)架妓灌,對其進(jìn)行填充來創(chuàng)建項目
題目2: jquery 能做什么?
jQuery是一個兼容多瀏覽器的JavaScript庫率触,核心理念是write less终议,do more,它的語法設(shè)計可以使開發(fā)更加便捷葱蝗,例如操作文檔對象穴张、選擇DOM元素、制作動畫效果两曼、事件處理皂甘、使用Ajax等。除此之外悼凑,jQuery還提供API讓開發(fā)者編寫插件偿枕。總之户辫,使用jQuery能使開發(fā)者很輕松的開發(fā)出功能強大的靜態(tài)或動態(tài)頁面
題目3: jquery 對象和 DOM 原生對象有什么區(qū)別渐夸?如何轉(zhuǎn)化?
區(qū)別:DOM原生對象是個特殊的對象渔欢。jQuery對象是一個類數(shù)組對象墓塌。
轉(zhuǎn)化:
DOM原生轉(zhuǎn)jQuery:$(Element)
;
jQuery轉(zhuǎn)DOM原生:Element[0]
奥额;
題目4:jquery中如何綁定事件苫幢?bind、unbind垫挨、delegate韩肝、live、on棒拂、off都有什么作用伞梯?推薦使用哪種玫氢?使用on綁定事件使用事件代理的寫法?
- bind/ unbind
用于jquery1.7之前谜诫,是老的綁定事件的寫法漾峡,已廢棄 - delegate
為指定的元素(屬于被選元素的子元素)添加一個或多個事件處理程序,并規(guī)定當(dāng)這些事件發(fā)生時運行的函數(shù)喻旷。使用 delegate() 方法的事件處理程序適用于當(dāng)前或未來的元素(比如由腳本創(chuàng)建的新元素)生逸。 - live
為被選元素附加一個或多個事件處理程序,并規(guī)定當(dāng)這些事件發(fā)生時運行的函數(shù)且预。也適用于當(dāng)前或未來的元素(比如由腳本創(chuàng)建的新元素)槽袄。但是live是將document作為代理元素,不推薦使用锋谐。 - on/off
現(xiàn)在使用的綁定事件的寫法(推薦使用)
// 普通事件綁定遍尺,最簡單的用法
$('div').on('click', function(e){
console.log(this);
console.log(e);
});
// 事件委托或者事件代理,想讓div 下面所有的span綁定事件涮拗,可以把事件綁定到div上
$('div').on('click', 'span', function(e){
console.log(this);
console.log(e);
});
題目5:jquery 如何展示/隱藏元素乾戏?
展示:.show([duration ] [,easing ] [,complete ])
隱藏:.hide([duration ] [,easing ] [,complete ])
duration:動畫持續(xù)多久
easing:表示過渡使用哪種緩動函數(shù),jQuery自身提供"linear" 和 "swing"
complete:在動畫完成時執(zhí)行的函數(shù)
沒有參數(shù)的時候等同于直接設(shè)置display屬性
$('#book').hide(300, function() {
alert('Animation complete.');
題目6: jquery 動畫如何使用三热?
- .animate( properties [, duration ] [, easing ] [, complete ] )
properties是一個CSS屬性和值的對象,動畫將根據(jù)這組對象移動鼓择。
$('#clickme').click(function() {
$('#book').animate({
opacity: 0.25,
left: '+=50',
height: 'toggle'
}, 5000, function() {
// Animation complete.
});
});
- .animate( properties, options )
options是一組包含動畫選項的值的集合。 常用的選項:
1就漾、duration (default: 400):一個字符串或者數(shù)字決定動畫將運行多久呐能。默認(rèn)值: "normal", 三種預(yù)定速度的字符串("slow", "normal", 或 "fast"或表示動畫時長的毫秒數(shù)值(如:1000) )
2抑堡、easing (default: swing):一個字符串摆出,表示過渡使用哪種緩動函數(shù)。jQuery自身提供"linear" 和 "swing"夷野,其他效果可以使用jQuery Easing Plugin插件
3懊蒸、step:每個動畫元素的每個動畫屬性將調(diào)用的函數(shù)。這個函數(shù)為修改Tween 對象提供了一個機會來改變設(shè)置中得屬性值悯搔。
4骑丸、complete:在動畫完成時執(zhí)行的函數(shù)
$('li').animate({ opacity: .5, height: '50%' }, { step: function(now, fx) {
var data = fx.elem.id + ' ' + fx.prop + ': ' + now;
$('body').append('<div>' + data + '</div>');
} });
題目7:如何設(shè)置和獲取元素內(nèi)部 HTML 內(nèi)容?如何設(shè)置和獲取元素內(nèi)部文本妒貌?
- 如何設(shè)置和獲取元素內(nèi)部 HTML 內(nèi)容通危?
html([string])
這是一個讀寫兩用的方法,用于獲取/修改元素的innerHTML:
1.當(dāng)沒有傳遞參數(shù)的時候灌曙,返回元素的innerHTML
2.當(dāng)傳遞了一個string參數(shù)的時候菊碟,修改元素的innerHTML為參數(shù)值
$('span').html()
$('span').html('123')
- 如何設(shè)置和獲取元素內(nèi)部文本?
text()
和html方法類似在刺,操作的是DOM的innerText值
題目8:如何設(shè)置和獲取表單用戶輸入或者選擇的內(nèi)容逆害?如何設(shè)置和獲取元素屬性头镊?
- 如何設(shè)置和獲取表單用戶輸入或者選擇的內(nèi)容?
$('input').val()/.selected()/.checked()/.disabled()/.enabled() - 如何設(shè)置和獲取元素屬性魄幕?
$('xxx').attr();