Jquery 撿漏

轉(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');


常用的特殊效果如下:

.fadeIn()淡入

.fadeOut()淡出

.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ù)

);


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • (續(xù)jQuery基礎(1)) 第5章 DOM節(jié)點的復制與替換 (1)DOM拷貝clone() 克隆節(jié)點是DOM的常...
    凜0_0閱讀 1,513評論 0 8
  • 1.JQuery 基礎 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式。設計者無需花費時間糾纏JS復雜的高級特性。 1....
    LaBaby_閱讀 1,274評論 0 1
  • 1.JQuery 基礎 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式。設計者無需花費時間糾纏JS復雜的高級特性。 1....
    LaBaby_閱讀 1,503評論 0 2
  • 大朵大朵紅色的開放,如此絢爛又那么奪目,就如同美好的愛情震撼在心與心之間,碰撞出最絢爛的色彩。 就在那紅色的花朵之...
    絳冬閱讀 1,037評論 3 12
  • 你的名字,我早已寫了無數(shù)遍…………可惜在你身邊的人,始終不是我,也不可能會是我;我只能在你的身后,卑微地看著“你”
    晴天下的季節(jié)閱讀 132評論 0 0

友情鏈接更多精彩內(nèi)容