轉(zhuǎn)自 http://www.ruanyifeng.com/blog/2011/07/jquery_fundamentals.html
jQuery還提供了.end()方法,使得結(jié)果集可以后退一步:
$('div')
.find('h3')
.eq(2)
.html('Hello')
.end() //退回到選中所有的h3元素的那一步
.eq(0) //選中第一個h3元素
.html('World'); //將它的內(nèi)容改為World
常見的取值和賦值函數(shù)如下:
.html()取出或設置html內(nèi)容
.text()取出或設置text內(nèi)容
.attr()取出或設置某個屬性的值
.width()取出或設置某個元素的寬度
.height()取出或設置某個元素的高度
.val()取出某個表單元素的值
需要注意的是,如果結(jié)果集包含多個元素,那么賦值的時候,將對其中所有的元素賦值;取值的時候,則是只取出第一個元素的值(.text()例外,它取出所有元素的text內(nèi)容)。
元素的移動
使用這種模式的操作方法,一共有四對:
.insertAfter()和.after():在現(xiàn)存元素的外部,從后面插入元素
.insertBefore()和.before():在現(xiàn)存元素的外部,從前面插入元素
.appendTo()和.append():在現(xiàn)存元素的內(nèi)部,從后面插入元素
.prependTo()和.prepend():在現(xiàn)存元素的內(nèi)部,從前面插入元素
六、元素的操作:復制、刪除和創(chuàng)建
除了元素的位置移動之外,jQuery還提供其他幾種操作元素的重要方法。
復制元素使用.clone()。
刪除元素使用.remove()和.detach()。兩者的區(qū)別在于,前者不保留被刪除元素的事件,后者保留,有利于重新插入文檔時使用。
清空元素內(nèi)容(但是不刪除該元素)使用.empty()。
創(chuàng)建新元素的方法非常簡單,只要把新元素直接傳入jQuery的構(gòu)造函數(shù)就行了:

常用的工具方法有以下幾種:
$.trim()去除字符串兩端的空格。
$.each()遍歷一個數(shù)組或?qū)ο蟆?/p>
$.inArray()返回一個值在數(shù)組中的索引位置。如果該值不在數(shù)組中,則返回-1。
$.grep()返回數(shù)組中符合某種標準的元素。
$.extend()將多個對象,合并到第一個對象。
$.makeArray()將對象轉(zhuǎn)化為數(shù)組。
$.type()判斷對象的類別(函數(shù)對象、日期對象、數(shù)組對象、正則對象等等)。
$.isArray()判斷某個參數(shù)是否為數(shù)組。
$.isEmptyObject()判斷某個對象是否為空(不含有任何屬性)。
$.isFunction()判斷某個參數(shù)是否為函數(shù)。
$.isPlainObject()判斷某個參數(shù)是否為用"{}"或"new Object"建立的對象。
$.support()判斷瀏覽器是否支持某個特性。
目前,jQuery主要支持以下事件:
.blur()表單元素失去焦點。
.change()表單元素的值發(fā)生變化
.click()鼠標單擊
.dblclick()鼠標雙擊
.focus()表單元素獲得焦點
.focusin()子元素獲得焦點
.focusout()子元素失去焦點
.hover()同時為mouseenter和mouseleave事件指定處理函數(shù)
.keydown()按下鍵盤(長時間按鍵,只返回一個事件)
.keypress()按下鍵盤(長時間按鍵,將返回多個事件)
.keyup()松開鍵盤
.load()元素加載完畢
.mousedown()按下鼠標
.mouseenter()鼠標進入(進入子元素不觸發(fā))
.mouseleave()鼠標離開(離開子元素不觸發(fā))
.mousemove()鼠標在元素內(nèi)部移動
.mouseout()鼠標離開(離開子元素也觸發(fā))
.mouseover()鼠標進入(進入子元素也觸發(fā))
.mouseup()松開鼠標
.ready()DOM加載完成
.resize()瀏覽器窗口的大小發(fā)生改變
.scroll()滾動條的位置發(fā)生變化
.select()用戶選中文本框中的內(nèi)容
.submit()用戶遞交表單
.toggle()根據(jù)鼠標點擊的次數(shù),依次運行多個函數(shù)
.unload()用戶離開頁面
bind ?事件
以上這些事件在jQuery內(nèi)部,都是.bind()的便捷方式。使用.bind()可以更靈活地控制事件,比如為多個事件綁定同一個函數(shù):
$('input').bind(
'click change', //同時綁定click和change事件
function() {
? ? alert('Hello');
}
);
有時,你只想讓事件運行一次,這時可以使用.one()方法。
$("p").one("click", function() {
alert("Hello"); //只運行一次,以后的點擊不會運行
});
.unbind()用來解除事件綁定。
$('p').unbind('click');
這個事件對象有一些很有用的屬性和方法:
event.pageX事件發(fā)生時,鼠標距離網(wǎng)頁左上角的水平距離
event.pageY事件發(fā)生時,鼠標距離網(wǎng)頁左上角的垂直距離
event.type事件的類型(比如click)
event.which按下了哪一個鍵
event.data在事件對象上綁定數(shù)據(jù),然后傳入事件處理函數(shù)
event.target事件針對的網(wǎng)頁元素
event.preventDefault()阻止事件的默認行為(比如點擊鏈接,會自動打開新頁面)
event.stopPropagation()停止事件向上層元素冒泡
有兩種方法,可以自動觸發(fā)一個事件。一種是直接使用事件函數(shù),另一種是使用.trigger()或.triggerHandler()。
$('a').click();
$('a').trigger('click');
常用的特殊效果如下:
.fadeTo()調(diào)整透明度
.hide()隱藏元素
.show()顯示元素
.slideDown()向下展開
.slideUp()向上卷起
.slideToggle()依次展開或卷起某個元素
.toggle()依次展示或隱藏某個元素
在特效結(jié)束后,可以指定執(zhí)行某個函數(shù)。
$('p').fadeOut(300, function() { $(this).remove(); });
更復雜的特效,可以用.animate()自定義。
$('div').animate(
{
left : "+=50", //不斷右移
opacity : 0.25 //指定透明度
},
300, // 持續(xù)時間
function() { alert('done!'); } //回調(diào)函數(shù)
);