jquery 基本操做

在項目開發中遇到用j Query  總結以下
javascript

jQuery 有什麼好處呢?css

我想好處有如下幾點:html

1. 簡化了html對象的操做, 起碼寫的字少了, 並且原來須要本身寫循環作的, 如今一句話就搞定java

2. 提升了代碼的瀏覽器兼容性. 如今的4種主流瀏覽器之間的js腳本或多或少都會存在兼容性問題, 用 jQuery , 會讓你不用關心兼容性.好比Ajax請求, ie和firefox的對象徹底不同還有box模型的問題, 好比一個div外面加了一個邊框, 而後爲這個div設定一個寬度, ie和firefox對這個div的實際寬度理解的就不同. ie會認爲div的實際寬度是div的寬度+邊框寬度, 而firefox認爲div的實際寬度就是你設定的寬度, 不過div的有效寬度就是div的寬度-邊框寬度了, 這個問題會影響一個元素的實際位置. 因此必定要用 jquery 的offset方法來取元素的位置, 用width來取寬度jquery

全部的 jQuery 選擇器返回值都是 jQuery 對象, 而不是html元素. 因此一些普通的用法, 好比InnerHTML都是無效的.瀏覽器

 

1. 選取元素app

$(」#myid」)效果等於document.getElementById(」myid」), 可是寫的字符要少好多啊.post

 

若是須要將 jQuery 對象轉換成html元素, 則只須要取其第0個元素便可. 例如$(」#myid」)返回的是 jQuery 對象, 而$(」#myid」)[0]返回的就是html元素this

 

若是選擇全部的img元素, 那麼這麼寫: $(」img」)google

 

若是選擇帶有class=」TextBox」的div元素(

), 那麼這麼寫: $(」div.TextBox」)

 

選擇帶有myattr屬性的元素$(」div[myattr]」)

選擇帶有myattr屬性, 而且屬性值等於myclass的元素$(」div[myattr=’myclass’]」)

屬性不等於[myattr!=’myclass’]

屬性以my開頭[myattr^=’my’]

屬性以class結尾[myattr$=’class’]

屬性包含cla這三個字符[myattr*=’cla’]

 

若是一個選擇會返回多個元素,而且但願每返回一個元素, 就把某些屬性應用到該元素上, 能夠這麼寫

$(」div」).each(function()

{

$(this).css(」background-color」, 「#F00″);

alert($(this).html());

$(this).width(」200px」);

});

2.事件

給頁面加onload事件處理方法

$(function()

{

alert(」頁面結構加載完畢, 可是可能某些圖片還沒有加載(通常狀況下, 此事件就夠用了)」);

});

能夠給頁面綁定多個onload事件處理方法

$(function()

{

alert(」我首先被執行」);

});

$(function()

{

alert(」我第二被執行」);

});

綁定特殊事件

$(」#myid」).keydown(function()

{

alert(」觸發了keydown事件」);

});

除了這些經常使用的, 不經常使用的事件須要經過bind方法綁定

 

3. 元素屬性/方法

獲得一個元素的高度, $(」#myid」).height()

獲得一個元素的位置, $(」#myid」).offset() 返回的是一個offset對象, 若是取元素位置的top, 則$(」#myid」).offset().top,?取left則$(」#myid」).offset().left

獲得一個元素的innerHTML,$(」#myid」).html()

獲得一個元素的innerText,$(」#myid」).text()

獲得一個文本框的值, $(」#myid」).val()

獲得一個元素的屬性, $(」#myid」).attr(」myattribute」)

以上這些方法有個基本特徵, 就是不帶參數表示取值, 帶有參數表示設定值(除了offset), 例如

$(」#myid」).height(」20″);

$(」#myid」).html(」< a href=」>asdasd a>」)

$(」#myid」).val(」asdasd」)

須要注意, offset是隻讀的.

給一個元素 設置屬性 $(」#myid」).attr(」width」, 「20%」)

讀取一個屬性 $(」#myid」).attr(」width」)

一次指定多個屬性 $(」#myid」).attr({disabled: 「disabled」, width:」20%」, height: 「30″})

刪除屬性$(」#myid」).removeAttr(」disabled」)

應用樣式$(」#myid」).addClass(」myclass」)

刪除樣式$(」#myid」).removeClass(」myclass」)

加一個樣式$(」#myid」).css(」height」, 「20px」)

加一組樣式$(」#myid」).css({height:」20px」, width:」100px」})

須要注意的是: 若是是加一個樣式, 這個樣式的名字是css中的名字, 好比說style=」background-color:#FF0000″, 對應的 jQuery 寫法是$(」#myid」).css(」background-color」, 「#FF0000″)

可是加一組樣式的時候, 樣式的名字就是javascript中的css名字了, 好比:myid.style.backgroundColor = 「#FF0000″, 對應的 jQuery 寫法是$(」#myid」).css({backgroundColor:」#FF0000″})

 

4. 根據關係查找元素

找和本身同級的下一個元素$(」#myid」).next()

找和本身同級的全部位於本身之下的元素$(」#myid」).nextAll()

找和本身同級的上一個元素$(」#myid」).prev()

找和本身同級的全部位於本身之上的全部元素$(」#myid」).prl()

找本身的第一代子元素$(」#myid」).children()

找本身的第一個父元素$(」#myid」).parent()

找本身的全部父元素$(」#myid」).parents()

例子:

$(」div.l4″).parents().each(

function() {

alert($(this).html());

});

會把class=l4的div的全部父元素都獲得, 而且alert出他們的html

例子:

$(」div.l4″).parents(」div.l2″).each(function() {alert($(this).html()); });

會獲得class=l4的父元素, 該父元素必須是div, 並且其class=l2

這裏說的全部方法, 均可以帶表達式, 表達式的寫法參考第一部分

 

5. 維護元素

在body中增長一個元素

$(」body」).append(」 ’asd’  」)

該語句會把這段html插入到body結束 標籤 以前, 結果是’asd’

$(」body」).prepend(」 ’asd’  」)

該語句會把這段html插入到body開始 標籤 以後, 結果是’asd’

 

6.AJAX

用get方法請求一個頁面

$.get(」 http://www.google.com」 , 「q= jquery」, function(data, status){alert(data)})

表示請求http://www.google.com,參數是q, 參數的值是 jquery , 請求結束後(無論成功仍是失敗)執行後面的function,該function有兩個固定參數, data和status, data是返回的數據, status是本次請求的狀態

用post方法請求一個頁面

$.post(……..) 參數同get方法

 

7.其餘方法

$.trim(str) 將str先後空格去掉

$.browser 返回當前用戶瀏覽器的類型

$.browser.version返回當前瀏覽器的版本

 

8. 插件

jQuery 支持插件, http:// jquery .com/plugins/ 上面有不少現成的插件, 也能夠本身寫

本身寫插件,

相關文章
相關標籤/搜索