學習JQuery中的DOM操作和事件操作

一些問題

JQuery是一個javascript類庫,那類庫是什麼,庫和框架的區別有是什麼呢?

  • 庫的英語爲Library,是將代碼集合成的一個產品,供程序員調用。面向對象的代碼組織形式而成的庫也叫類庫。面向過程的代碼組織形式而成的庫也叫函數庫。在函數庫中的可直接使用的函數叫庫函數。開發者在使用庫的時候,只需要使用庫的一部分類或函數,然後繼續實現自己的功能。
  • 框架則是爲解決一個(或一類)問題而開發的產品,框架用戶一般只需要使用框架提供的類或函數,即可實現全部功能。可以說框架是庫的升級版。開發者在使用框架的時候,必須使用這個框架的全部代碼

jquery 能做什麼?

  • 簡單快捷的獲取DOM元素
  • 響應用戶的事件
  • 動態的修改頁面的樣式
  • 動態的修改DOM的內容
  • 添加動畫或者特效效果
  • 統一Ajax操作

jquery 對象和 DOM 原生對象有什麼區別?如何轉化?

  • DOM原生對象:通過原生js獲取的dom節點是DOM元素;只能使用DOM元素的屬性和方法。
  • jquery對象:通過jquery選擇器選擇的元素是jquery對象;只能使用jquery的屬性和方法
  • 使用$(dom)函數可以將dom對象轉化爲jquery對象。
  • jquery對象是類數組對象,使用索引想去數組的第幾項就能將第幾項轉化爲dom對象。

jquery中如何綁定事件?bind、unbind、delegate、live、on、off都有什麼作用?推薦使用哪種?使用on綁定事件使用事件代理的寫法?

  • bind():最簡單的綁定方法,JQuery掃描DOM中所有的JQuery選擇器選擇的元素,並將函數綁定到每個元素的事件上,例子:
$('a').bind('click', function() { 
    alert("That tickles!") 
});
  • live():JQuery把alert函數綁定到$(document)元素上,並使用’click’和’a’作爲參數。任何時候只要有事件冒泡到document節點上,它就查看該事件是否是一個click事件,以及該事件的目標元素與a這一CSS選擇器是否匹配,如果都是的話,則執行函數,例子如下:
$('a').live('click', function() { 
    alert("That tickles!") 
});
  • delegate():事件代理。JQuery掃描文檔查找$(‘#container’),並使用click事件和a這一CSS選擇器作爲參數把alert()綁定到$(‘#container’)上。任何時候只要有事件冒泡到$(‘#container’)上,它就查看該事件是否是click事件,以及該事件的目標元素是否與CCS選擇器相匹配。如果兩種檢查的結果都爲真的話,它就執行函數。
  • on()推薦使用的方法,on事件綁定把上面三種方法統一了,用起來更方便。用法例子:
// Bind
$( "#members li a" ).on( "click", function( e ) {} ); 
$( "#members li a" ).bind( "click", function( e ) {} ); 


// Delegate
$( "#members" ).on( "click", "li a", function( e ) {} );   //注意子元素參數位置
$( "#members" ).delegate( "li a", "click", function( e ) {} );

jquery 如何展示/隱藏元素?

$(selector).hide(speed,callback);  //隱藏元素
$(selector).show(speed,callback);  //展示元素
$(selector).toggle(speed,callback);  //切換元素的可見狀態,如果被選元素可見,則隱藏這些元素,如果被選元素隱藏,則顯示這些元素。
  • 可選的speed參數規定隱藏/顯示的速度,可以使用這些值:"slow""fast" 或毫秒。
  • 可選的callback參數是隱藏或顯示完成後所執行的函數名稱。

jquery 動畫如何使用?

  • jQuery animate()方法用於創建自定義動畫。
$(selector).animate({params},speed,callback);
  • 必須的params參數定義形成動畫的CSS屬性。
  • 可選的speed參數規定效果的時長,可以使用這些值:"show""fast"或毫秒
  • 可選的callback參數是隱藏或顯示完成後所執行的函數名稱。

如何設置和獲取元素內部 HTML 內容?如何設置和獲取元素內部文本?

  • html()設置或返回所選元素的內容(包括 HTML 標記)
  • text()設置或返回所選元素的文本內容

如何設置和獲取表單用戶輸入或者選擇的內容?如何設置和獲取元素屬性?

  • val()設置或返回表單字段的值
  • attr()設置或返回元素的屬性

一些例子

下面是一些用JQuery實現的我們再網頁上常用的部件

下拉菜單,右側出現代碼
tab切換代碼
注意:
- 奢侈品2的a標籤中的href屬性值設爲了#頁面會跳回頂部,將其設爲javascript:void(0)就不會出現這種情況了。
- 頁面的默認錨點再頁面頂部,當herf="#"時,頁面會跳轉到錨點,javascript:void(0)的作用是將連接變爲一個死鏈接,既不會跳轉也不會回到頂部。
點擊加載更多代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章