Jquery學習筆記



Jquery 學習筆記

jquery簡介:javascript

(1)jquery是幹什麼的呢?css

l 爲了簡化 JavaScript 的開發一些 JavsScript 庫誕生了. JavaScript 庫封裝了不少預約義的對象和實用函數。能幫助使用者創建有高難度交互的 Web2.0 特性的富客戶端頁面而且兼容各大瀏覽器html

l 當前流行的 JavaScript 庫有: jQuery, MooTools, Prototype, Dojo, YUI, EXT_JS  DWRjava

l jQuery由美國人John Resig建立,至今已吸引了來自世界各地的衆多 javascript高手加入其teamnode

l jQuery是繼prototype以後又一個優秀的Javascript框架。其宗旨是——WRITE LESS,DO MORE,寫更少的代碼,作更多的事情。jquery

l 它是輕量級的js(壓縮後只有21k) ,這是其它的js庫所不及的,它兼容CSS3,還兼容各類瀏覽器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。程序員

l jQuery是一個快速的,簡潔的javaScript,使用戶能更方便地處理HTML documentsevents、實現動畫效果,而且方便地爲網站提供AJAX交互。ajax

l jQuery還有一個比較大的優點是,它的文檔說明很全,並且各類應用也說得很詳細,同時還有許多成熟的插件可供選擇。數組

jQuery可以使用戶的html頁保持代碼和html內容分離,也就是說,不用再在html裏面插入一堆js來調用命令了,只需定義id便可。瀏覽器

 

1.jquery對象和dom 對象的轉化

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<script src="../js/jquery-1.4.2.js"></script>    --引入jQuery-1.4.2.js文件,至關於引入jar

<script type="text/javascript">

window.onload = function()

{

//利用dom技術獲取頁面上的某一個對象

var domObj = document.getElementById("username");

//dom對象轉化成jquery對象   jquery對象是數組對象   若是沒有對應的頁面的元素,則數組的長度爲0

var jquerObj = $(domObj);

//也是jQuery對象,可是數組的長度爲0

var jQueryObject1 = $("#usernam");

alert(jQueryObject1);

//jquery對象轉化成dom對象

var jQueryObj = $("#username");

jQueryObj.get(0)//jquery對象轉化成dom對象

jQueryObj[0] ;//jQuery對象轉化成dom對象

}

</script>

<body>

<input type="text" name = "username" id = "username"><input>

</body>

</html>

兩種轉換方式將一個jQuery對象轉換成DOM對象:[index].get(index); 

1.jQuery對象是一個數組對象,能夠經過[index]的方法,來獲得相應的DOM對象 

2. jQuery自己提供,經過.get(index)方法,獲得相應的DOM對象

 

2.選擇器

2.1基本選擇器

基本選擇器基本選擇器是jquery中最簡單,也是最經常使用的選擇器。它經過元素id,class和標籤名來查找DOM元素

  $(#id)  

返回值:單個元素組成的集合

  $(element標籤)

返回值:元素集合

  $(.class) 

這個標籤是直接選擇html代碼中class=」myClass」的元素或元素組(由於在同一html頁面中class是能夠存在多個一樣值的).

  $(*) 

匹配全部的元素

  select1,select2

用法: $(」div,span,p.myClass」)    返回值  集合元素

 說明將每個選擇器匹配到的元素合併後一塊兒返回.你能夠指定任意多個選擇器並將匹配到的元素合併到一個結果內.

2.2層析選擇器

層次選擇器     若是想經過DOM元素之間的層次關係來獲取特定元素。例如子元素、兄弟元素等。則須要經過層次選擇器。

$(form input)

返回值  集合元素  說明在給定的祖先元素下匹配全部後代元素.

$(form>input)

說明在給定的父元素下匹配全部子元素.注意:要區分好後代元素與子元素

$(form+input)

說明匹配全部緊接在 prev 元素後的 next 元素

$("form ~ input")

找到全部與表單同輩的 input 

示例:

 

HTML 代碼:

<form>  <label>Name:</label>  <input name="name" />  <fieldset>      <label>Newsletter:</label>      <input name="newsletter" /> </fieldset></form><input name="none" />

jQuery 代碼:

$("form ~ input")

結果:

[ <input name="none" /> ]

 

 

2.3過濾選擇器

過濾選擇器主要是經過特定的過濾規則來篩選出所需的 DOM 元素該選擇器都以 「:」 開頭

按照不一樣的過濾規則過濾選擇器能夠分爲基本過濾內容過濾可見性過濾屬性過濾子元素過濾和表單對象屬性過濾選擇器.

基本過濾選擇器

 

$(tr:first)

匹配找到的第一個元素

$(tr:last)

匹配找到的最後一個元素.與 :first 相對應

$(」input:not(:checked)」

去除全部與給定選擇器匹配的元素.有點相似於」非」,意思是沒有被選中的input(inputtype=」checkbox」)

$(tr:even)

匹配全部索引值爲偶數的元素,從 開始計數.js的數組都是從0開始計數的

$(tr:odd)

說明匹配全部索引值爲奇數的元素,:even對應,從 開始計數.

$(」tr:eq(0)」) 

匹配一個給定索引值的元素.eq(0)就是獲取第一個tr元素.括號裏面的是索引值,不是元素排列數.

$(tr:gt(0))

返回值  集合元素 說明匹配全部大於給定索引值的元素.

$(tr:lt(2)

說明匹配全部小於給定索引值的元素.

$(:header)

說明匹配如 h1, h2, h3之類的標題元素.這個是專門用來獲取h1,h2這樣的標題元素

內容過濾選擇器

內容過濾選擇器的過濾規則主要體如今它所包含的子元素和文本內容上

$(」div:contains(’John’)

返回值  集合元素

$(td:empty)  

匹配全部不包含子元素或者文本的空元素

$(」div:has(p)」)

給全部包含p元素的div標籤加上class=」test」.

$(」td:parent」) 

說明匹配含有子元素或者文本的元素

可見過濾選擇器

根據元素的可見和不可見狀態來選擇相應的元素

$(」tr:hidden」) 

匹配全部的不可見元素,

$(」tr:visible」)

匹配全部的可見元素.

屬性過濾器

屬性過濾選擇器的過濾規則是經過元素的屬性來獲取相應的元素

$(」div[id]「) 

匹配包含給定屬性的元素

$(input[name=newleter)

匹配給定的屬性是某個特定值的元素

$(」input[name!=newleter「)

匹配全部不含有指定的屬性,或者屬性不等於特定值的元素.

$(」input[name^=‘news’]「) 

匹配給定的屬性是以某些值開始的元素

$(」input[name$=‘letter’]「)  

說明匹配給定的屬性是以某些值結尾的元素.

$(」input[name*=‘man’「)  

說明匹配給定的屬性是以包含某些值的元素.

$(」input[id][name$=‘man’]「)

複合屬性選擇器,須要同時知足多個條件時使用.又是一個組合,這種狀況咱們實際使用的時候很經常使用.這個例子中選擇的是全部含有 id 屬性,而且它的 name 屬性是以 man 結尾的元素.幾種組合的交集。

子元素過濾選擇器

 

nth-child(index/even/odd/equation) 匹配其父元素下的第N個子或奇偶元素.這個選擇器和以前說的基礎過濾(Basic Filters)中的 eq() 有些相似,不一樣的地方就是前者是從0開始,後者是從1開始.

$(」ul li:first-child」) 

匹配第一個子元素.’:first’ 只匹配一個元素,而此選擇符將爲每一個父元素匹配一個子元素.這裏須要特別點的記憶區別

$(」ul li:last-child」) 

匹配最後一個子元素.’:last’只匹配一個元素,而此選擇符將爲每一個父 元素匹配一個子元素.

$(」ul li:only-child」) 

說明若是某個元素是父元素中惟一的子元素,那將會被匹配.若是父元素中含有其餘元素,那將不會被匹配.意思就是:只有一個子元素的纔會被匹配!

表單對象屬性過濾選擇器

此選擇器主要對所選擇的表單元素進行過濾

$(」input:enabled」)

匹配全部可用元素.意思是查找全部input中不帶有disabled=」disabled」input.不爲disabled,固然就爲enabled

$(」input:disabled」)    

匹配全部不可用元素.與上面的那個是相對應的

$(」input:checked」)   

匹配全部選中的被選中元素(複選框、單選框等,不包括select中的option).這話提及來有些繞口

$(」select option:selected」)   

匹配全部選中的option元素.

 

2.4.表單選擇器

$(」:input」) 

說明:匹配全部 input, textarea, select 和 button 元素 

$(」:text」)

說明匹配全部的單行文本框

$(」:password」) 

匹配全部密碼框.

$(」:radio」) ;

說明匹配全部單選按鈕

$(」:checkbox」) 

說明匹配全部複選框

$(」:submit」) 

說明匹配全部提交按鈕

$(」:image」)

說明匹配全部圖像域

$(」:reset」) 

說明匹配全部重置按鈕

$(」:button」) ;

說明匹配全部按鈕.這個包括直接寫的元素button.

$(」input:hidden」) ;

匹配全部不可見元素,或者typehidden的元素.這個選擇器就不只限於表單了,除了匹配input中的hidden,那些stylehidden的也會被匹配.

3.jquery中的dom操做

4.Jqueryajax應用

4.1 load方法

l load()方法是 jQuery 中最爲簡單和經常使用的 Ajax 方法, 能載入遠程的 HTML 代碼並插入到 DOM 它的結構是: load(url[, data][,callback])

 

l 程序員只須要使用 jQuery 選擇器爲 HTML 片斷指定目標位置而後將要加載的文件的 url 作爲參數傳遞給 load() 方法便可

l 若是隻須要加載目標 HTML 頁面內的某些元素則能夠經過 load() 方法的 URL 參數來達到目的經過 URL 參數指定選擇符就能夠方便的從加載過來的 HTML 文檔中選出所須要的內容

l 傳遞方式: load() 方法的傳遞參數根據參數 data 來自動自定若是沒有參數傳遞採用 GET 方式傳遞不然採用 POST 方式

l 對於必須在加載完才能繼續的操做, load() 方法提供了回調函數該函數有三個參數表明請求返回內容的 data; 表明請求狀態的 textStatus 對象和 XMLHttpRequest 對象

l 方法的返回值是 jQuery 

4.2 get或者post方法

l $.get() 方法使用 GET 方式來進行異步請求它的結構是: $.get(url[, data][, callback][, type]);

 

l $.get() 方法的回調函數只有兩個參數: data 表明返回的內容能夠是 XML 文檔, JSON 文件, HTML 片斷等; textstatus 表明請求狀態其值可能爲: succuss, error, notmodify, timeout 4 .

l 方法的返回值:XMLHttpRequest對象 

l $.get()  和 $.post() 方法是 jQuery 中的全局函數而 find() 等方法都是對 jQuery 對象進行操做的方法

5. jquery tree

5.1zTree的簡介

1、是jquery樹插件的一種,具備特色強大的API,實例和說明,是學習和工做的很好選擇。

2、支持JSON數據格式,使得整個開發變得簡單化。

3、支持事件響應及反饋。

4、可讓代碼方便化和簡潔化。

5、支持ajax異步加載的方式,能夠不用刷新就能把整個樹加載進去。

5.2 zTree組成

5.2.1jquery-1.4.2.js

            jQuery的核心類庫

52.2jquery-ztree-2.5.js

           Jquery樹插件的核心類庫

5.2.3zTreeStyle.css

        zTree插件的樣式文件

5.3zTree核心API

5.3.1 zTree(setting, [zTreeNodes])

5.3.1.1說明

這個函數接受一個 JSON 格式的數據對象 setting 和 一個 JSON 格式的數據對象 zTreeNodes,從而創建 Tree

5.3.1.2例子

          

       

 5.3.2核心配置setting

5.3.2.1 treeNodeKey

設置節點惟一標識屬性名稱,轉換數據格式時使用

53.2.2 treeNodeParentKey

設置節點的父節點惟一標識屬性名稱,轉換數據格式時使用

5.3.2.3 showLine

設置 zTree 是否顯示節點之間的連線

5.3.2.4 root

       zTree 數據節點的根,所有節點數據都處於 root.nodes 

5.3.2.5 callback

      專門用於用戶自定義各類 callback 回調函數

 

5.3.3回調函數
5.3.3.1expand

        當一層節點展開時,所觸發的函數。在zTree裏,都是經過在setting的設置來執行回調函數的。

 

從如圖能夠看出,當一個節點進行展開的時候要觸發zTreeOnExpand方法。

這個函數有三個參數:

Event              標準的event對象

treeId              對應於樹的根節點

treeNode           被展開的節點的JSON數據對象

5.3.3.2 collapse

當一層節點關閉時所觸發的函數,從圖上能夠看出,當一個節點關閉時觸發zTreeOnCollapse函數。

這個函數有三個參數:

Event              標準的event對象

treeId              對應於樹的根節點

treeNode           被展開的節點的JSON數據對象

4.3.4 addNodes

      1在指定節點下增長子節點

      2、該方法有三個參數

                   1parentNode 指定的父節點,若是增長根節點,請設置 parentNode 爲 null 便可

                   2newNodes  須要增長的節點數據 JSON 對象集合,支持將節點的n級子節點一次性增長,只須要符合zTree的節點數據結構便可

                   3isSilent      設定增長節點後是否展開其父節點。isSilent = true 時,不展開父節點,其餘值或缺省狀態都自動展開

    3、由樹節點的引用調用該方法

            

相關文章
相關標籤/搜索