jQuery選擇器_Dom操作_樣式_事件處理_動畫

題目1: jQuery 能做什么沫换?

jQuery是一個javascript的函數(shù)庫软驰。jQuery的語法操作使得許多操作變得容易,如操作文檔對象夸赫,選擇文檔對象模型元素,創(chuàng)建動畫效果咖城,處理事件茬腿,以及開發(fā)AJAX程序。jQuery也提供了給開發(fā)人員在其上創(chuàng)建插件的能力宜雀,這使開發(fā)人員可以對底層交互與動畫切平、高級效果和高級主題化的組件進(jìn)行抽象化。模塊化的方式使jQuery函數(shù)庫能夠創(chuàng)建功能強(qiáng)大的動態(tài)網(wǎng)頁以及網(wǎng)絡(luò)應(yīng)用程序

題目2: jQuery 對象和 DOM 原生對象有什么區(qū)別州袒?如何轉(zhuǎn)化揭绑?

DOM對象是使用傳統(tǒng)javascript獲取的對象,jQuery對象是通過jQuery的類選擇器獲得的對象郎哭。jQuery對象就是通過jQuery包裝DOM對象后產(chǎn)生的對象他匪。jQuery對象是可以使用jQuery的方法,但是不能使用DOM方法夸研。DOM對象只能使用DOM方法邦蜜,不能使用jQuery方法。

jQuery轉(zhuǎn)DOM對象有兩種轉(zhuǎn)換方式亥至,[index].get(index)

$('#v'); //jQuery對象
$('#v')[0]; //DOM對象
$('#v').get(0); //DOM對象

DOM對象轉(zhuǎn)jQuery對象

var v = document.getElementById('v'); //DOM對象
var v2 = $(v);    //DOM對象轉(zhuǎn)jQuery對象

題目3:jQuery中如何綁定事件悼沈?bind侣夷、unbind、delegate组橄、live帆赢、on、off都有什么作用壤靶?推薦使用哪種缚俏?使用on綁定事件使用事件代理的寫法?

jQuery事件是DOM事件的封裝贮乳,同時支持自定義擴(kuò)展忧换。一般使用bindon向拆、live亚茬、delegatekeyup(<function>) 來綁定事件浓恳。

bind

<div id='foo'></div>
<script>
$('#foo').click(function(){
    console.log('clicked!');
});
</script>

.click(<function>)等效于.bind('click', <function>)刹缝。另外還可以通過unbind來解綁事件:

$('#foo').unbind('click');

.bind將會給所有匹配的元素都綁定一次事件,當(dāng)元素很多時性能會變差奖蔓。后來新增的元素不會被綁定赞草。頁面加載完成時,才能進(jìn)行bind吆鹤。

Delegate

.delegate也是綁定事件的方法,它將事件處理函數(shù)綁定在指定的根元素上厨疙,由于事件會冒泡,可以用來處理指定的子元素上的事件疑务。

<div id="root">
  <a>Alice</a>
  <a>Bob</a>
</div>
<script>
$('#root').delegate('a', 'click', function(){
    console.log('clicked');
});
</script>
  • 自動綁定動態(tài)添加的元素沾凄,因?yàn)槭录幚砗瘮?shù)綁定在#root上,新加的子元素事件也會冒泡到#root
  • 性能好于bind()知允。只綁定一個事件處理函數(shù)撒蟀,綁定速度相當(dāng)快。

live

.live()方法會綁定相應(yīng)的事件到你所選擇的元素的根元素上温鸽,即是document元素上保屯。那么所有通過冒泡上來的事件都可以用這個相同的handler來處理了。

優(yōu)點(diǎn):

  • 這里僅有一次的事件綁定涤垫,綁定到document上而不像.bind()那樣給所有的元素挨個綁定
  • 那些動態(tài)添加的elemtns依然可以觸發(fā)那些早先綁定的事件姑尺,因?yàn)槭录嬲慕壎ㄊ窃赿ocument上
  • 你可以在document ready之前就可以綁定那些需要的事件

缺點(diǎn):

  • 從1.7開始已經(jīng)不被推薦了,所以你也要開始逐步淘汰它了蝠猬。
  • Chaining沒有被正確的支持
  • 當(dāng)使用event.stopPropagation()是沒用的切蟋,因?yàn)槎家竭_(dá)document
  • 因?yàn)樗械膕elector/event都被綁定到document, 所以當(dāng)我們使用matchSelector方法來選出那個事件被調(diào)用時,會非常慢
  • 當(dāng)發(fā)生事件的元素在你的DOM樹中很深的時候榆芦,會有performance問題

on

其實(shí).bind(), .live(), .delegate()都是通過.on()來實(shí)現(xiàn)的柄粹,.unbind(), .die(), .undelegate(),也是一樣的都是通過.off()來實(shí)現(xiàn)的喘鸟。

// Bind
$( "#members li a" ).on( "click", function( e ) {} ); 
$( "#members li a" ).bind( "click", function( e ) {} ); 

// Live
$( document ).on( "click", "#members li a", function( e ) {} ); 
$( "#members li a" ).live( "click", function( e ) {} );

// Delegate
$( "#members" ).on( "click", "li a", function( e ) {} ); 
$( "#members" ).delegate( "li a", "click", function( e ) {} );

一般推薦使用on來綁定事件。

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

//使用hide(), show()方法
$('#div').show();
$('#div').hide();
//使用attr()方法設(shè)置屬性
$('#div').attr("style", "display:none;");
$('#div').attr("style", "display:block;");
//使用css()方法
$('#div')..css('display', 'none');
$('#div')..css('display', 'block');

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

.animate() 一共有兩種方法:

  • .animate( properties [, duration ] [, easing ] [, complete ] )

    properties是必須的,規(guī)定產(chǎn)生動畫效果的CSS樣式和值堪夭。
    duration可選兑凿,規(guī)定動畫的速度,默認(rèn)是normal 400
    easing設(shè)置easing函數(shù),默認(rèn)是swing
    complete animate執(zhí)行完之后要執(zhí)行的函數(shù)

  • .animate( properties, options )

    properties規(guī)定產(chǎn)生動畫效果的 CSS 樣式和值
    options規(guī)定動畫的額外選項(xiàng)

題目6:如何設(shè)置和獲取元素內(nèi)部 HTML 內(nèi)容茵瘾?如何設(shè)置和獲取元素內(nèi)部文本?

可以使用html()方法來獲取元素內(nèi)部的HTML內(nèi)容 使用.html( htmlString )來設(shè)置元素內(nèi)部的HTML內(nèi)容咐鹤。
使用text()方法來獲取元素內(nèi)部的文本拗秘,使用text(text)來設(shè)置元素內(nèi)部文本

題目7:如何設(shè)置和獲取表單用戶輸入或者選擇的內(nèi)容?如何設(shè)置和獲取元素屬性祈惶?

//獲取input text輸入的內(nèi)容
$('input[type=text]').val()
//獲取radio的值
$('input[type=radio]').val()
//獲取select的值
$('select').val()
//獲取select name 屬性
$('select').attr('name')
//設(shè)置select name屬性
$('select').attr("name", "test")
$('select').attr({name: 'test'})
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末雕旨,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子捧请,更是在濱河造成了極大的恐慌凡涩,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疹蛉,死亡現(xiàn)場離奇詭異活箕,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)可款,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進(jìn)店門育韩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人闺鲸,你說我怎么就攤上這事筋讨。” “怎么了摸恍?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵悉罕,是天一觀的道長。 經(jīng)常有香客問我立镶,道長壁袄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任谜慌,我火速辦了婚禮然想,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘欣范。我一直安慰自己变泄,他們只是感情好令哟,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著妨蛹,像睡著了一般屏富。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蛙卤,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天狠半,我揣著相機(jī)與錄音,去河邊找鬼颤难。 笑死神年,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的行嗤。 我是一名探鬼主播已日,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼栅屏!你這毒婦竟也來了飘千?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤栈雳,失蹤者是張志新(化名)和其女友劉穎护奈,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哥纫,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡霉旗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了磺箕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奖慌。...
    茶點(diǎn)故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖松靡,靈堂內(nèi)的尸體忽然破棺而出简僧,到底是詐尸還是另有隱情,我是刑警寧澤雕欺,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布岛马,位于F島的核電站,受9級特大地震影響屠列,放射性物質(zhì)發(fā)生泄漏啦逆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一笛洛、第九天 我趴在偏房一處隱蔽的房頂上張望夏志。 院中可真熱鬧,春花似錦苛让、人聲如沸沟蔑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瘦材。三九已至厅须,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間食棕,已是汗流浹背朗和。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留簿晓,地道東北人眶拉。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像憔儿,于是被迫代替她去往敵國和親镀层。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容