jQuery 能做什么?
jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers.
jQuery是一個快速,小巧,功能豐富的 JavaScript 庫。 它使諸如 HTML 文檔遍歷和操縱,事件處理,動畫和 Ajax 等事情變得簡單得多,而且易于使用的 API 可以在多種瀏覽器中使用。
- 選擇網(wǎng)頁元素
- 改變結(jié)果集
- 元素的操作:取值和賦值
- 元素的操作:移動
- 元素的操作:復(fù)制、刪除和創(chuàng)建
- 工具方法
- 事件操作
- 特殊效果
- AJAX
jQuery 對象和 DOM 原生對象有什么區(qū)別?如何轉(zhuǎn)化?
-
區(qū)別
- jQuery 對象是通過對 DOM 對象封裝后產(chǎn)生的對象,jQuery 對象只能使用 jQuery 里面的方法,不能使用 DOM 中的方法
- DOM 對象是 JavaScript 固有的對象,DOM 對象可以使用 JavaScript 原生方法,不可以使用 jQuery 中的方法
-
轉(zhuǎn)換
-
jQuery 對象轉(zhuǎn)換為 DOM 對象可以通過類數(shù)組下標的獲取方式或者
get方法獲取指定 index 的 DOM 對象。$('div')[2]; $('div').eq(2); $('div')get(); -
DOM 對象轉(zhuǎn)換為 jQuery 對象可以使用
$()將 DOM 對象包裹起來既可以獲取到一個 jQuery 對象
-
jQuery 對象轉(zhuǎn)換為 DOM 對象可以通過類數(shù)組下標的獲取方式或者
jQuery中如何綁定事件?bind、unbind、delegate、live、on、off都有什么作用?推薦使用哪種?使用on綁定事件使用事件代理的寫法?
-
jQuery 中 通過
on方法綁定事件,通過off方法卸載事件-
bind為一個元素綁定一個事件處理程序 -
unbind從元素上刪除一個以前附加事件處理程序 -
delegate為所有匹配選擇器(selector參數(shù))的元素綁定一個或多個事件處理函數(shù),基于一個指定的根元素的子集,匹配的元素包括那些目前已經(jīng)匹配到的元素,也包括那些今后可能匹配到的元素 -
live附加一個事件處理器到匹配目前選擇器的所有元素,現(xiàn)在和未來 -
on在選定的元素上綁定一個或多個事件處理函數(shù) -
off移除一個事件處理函數(shù)
-
推薦使用
on方法綁定事件,off方法卸載事件-
使用
on綁定事件使用事件代理的寫法$('.box ul').on('click', 'li', function(){ // Do something })
jQuery 如何展示/隱藏元素?
-
通過設(shè)置 CSS 來實現(xiàn)
var $h1 = $('h1'); $h1.css('display','none') -
通過設(shè)置 class 來實現(xiàn)
// CSS 部分 .class { display: none; } // JS 部分 var $h1 = $('h1'); $h1.addClass('class'); $h1.removeClass('class');
- 通過 jQuery 動畫來實現(xiàn)
var $h1 = $('h1'); $h1.hide(); // 隱藏 $h1.show(); // 顯示 $h1.toggle(); // 切換隱藏/顯示
jQuery 動畫如何使用?
-
四個參數(shù)
-
duration動畫持續(xù)時長,單位毫秒,默認400ms; -
easing過渡使用哪種緩動函數(shù),jQuery 自身提供linear和swing; -
complete在動畫完成時執(zhí)行的函數(shù); -
opacity不透明度,1為不透明,0為完全透明;
-
-
基礎(chǔ)用法
- 顯示元素
.show([duration ] [, easing ] [, complete ]) - 隱藏元素
.hide([duration ] [, easing ] [, complete ]) - 切換隱藏或顯示
.toggle([duration ] [,easing ] [,complete ])
- 顯示元素
-
漸變
淡入顯示
.fadeIn( [duration ] [, easing ] [, complete ] )淡出隱藏
.fadeOut( [duration ] [, easing ] [, complete ] )調(diào)整匹配元素的透明度,方法通過匹配元素的不透明度做動畫效果
.fadeTo( duration, opacity [, easing ] [, complete ] )通過匹配的元素的不透明度動畫,來顯示或隱藏它們,方法執(zhí)行匹配元素的不透明度動畫。當被可見元素調(diào)用時,元素不透明度一旦達到0,display 樣式屬性設(shè)置為 none ,所以元素不再影響頁面的布局。
.fadeToggle( [duration ] [, easing ] [, complete ] )
-
滑動
- 用滑動動畫顯示一個匹配元素,方法將給匹配元素的高度的動畫,這會導(dǎo)致頁面的下面部分滑下去,彌補了顯示的方式
.slideDown( [duration ] [, easing ] [, complete ] ) - 用滑動動畫隱藏一個匹配元素,方法將給匹配元素的高度的動畫,這會導(dǎo)致頁面的下面部分滑上去,當一個隱藏動畫后,高度值達到0的時候,display 樣式屬性被設(shè)置為 none,以確保該元素不再影響頁面布局。
.slideUp( [duration ] [, easing ] [, complete ] ) - 用滑動動畫顯示或隱藏一個匹配元素
.slideToggle( [duration ] [, easing ] [, complete ] )用滑動動畫顯示或隱藏一個匹配元素,方法將給匹配元素的高度的動畫,這會導(dǎo)致頁面中,在這個元素下面的內(nèi)容往下或往上滑。display屬性值保存在jQuery的數(shù)據(jù)緩存中,所以display可以方便以后可以恢復(fù)到其初始值。
如果一個元素的display屬性值為inline,然后是隱藏和顯示,這個元素將再次顯示inline。當一個隱藏動畫后,高度值達到0的時候,display 樣式屬性被設(shè)置為none,以確保該元素不再影響頁面布局。
- 用滑動動畫顯示一個匹配元素,方法將給匹配元素的高度的動畫,這會導(dǎo)致頁面的下面部分滑下去,彌補了顯示的方式
-
自定義動畫
.animate( properties [, duration ] [, easing ] [, complete ] )
properties是一個 CSS 屬性和值的對象,動畫將根據(jù)這組對象移動。
例子:$('#clickme').click(function() { $('#book').animate({ opacity: 0.25, left: '+=50', height: 'toggle' }, 5000, function() { // Animation complete. }); }); -
停止動畫
- 清除動畫隊列中未執(zhí)行的動畫
.clearQueue( [queueName ] ) - 停止當前動畫,并清除動畫隊列中所有未完成的動畫,最終展示動畫隊列最后一幀的最終狀態(tài)
.finish( [queue ] ) - 停止當前正在運行的動畫
.stop( [clearQueue ] [, jumpToEnd ] )clearQueue(default: false)jumpToEnd(default: false)
- 清除動畫隊列中未執(zhí)行的動畫
如何設(shè)置和獲取元素內(nèi)部 HTML 內(nèi)容?如何設(shè)置和獲取元素內(nèi)部文本?
-
設(shè)置和獲取內(nèi)部 HTML 內(nèi)容
.html([string])
這是一個讀寫兩用的方法,用于獲取/修改元素的innerHTML- 當沒有傳遞參數(shù)的時候,返回元素的
innerHTML - 當傳遞了一個 string 參數(shù)的時候,修改元素的
innerHTML為參數(shù)值
$('div').html(); $('div').html(`123`); - 當沒有傳遞參數(shù)的時候,返回元素的
-
設(shè)置和獲取元素內(nèi)部文本
.text([string])
這是一個讀寫兩用的方法,用于獲取/修改元素的innerText- 當沒有傳遞參數(shù)的時候,返回元素的
innerText - 當傳遞了一個 string 參數(shù)的時候,修改元素的
innerText為參數(shù)值
$('div').text(); $('div').text(`123`); - 當沒有傳遞參數(shù)的時候,返回元素的
如何設(shè)置和獲取表單用戶輸入或者選擇的內(nèi)容?如何設(shè)置和獲取元素屬性?
-
設(shè)置和獲取表單用戶輸入或者選擇的內(nèi)容
.val([value])
這是一個讀寫雙用的方法,用來處理 input 的 value,當方法沒有參數(shù)的時候返回 input 的 value 值,當傳遞了一個參數(shù)的時候,方法修改 input 的 value 值為參數(shù)值$('input').val() $('input').val() -
設(shè)置和獲取元素屬性
獲取元素特定屬性的值
.attr(attributeName)為元素屬性賦值
.attr(attributeName,value)/.attr(attributesJson)/.attr( attributeName, function(index, attr) )為匹配的元素集合中的每個元素中移除一個屬性(attribute)
.removeAttr()