最近在使用jQuery開發項目的過程中,發現一個奇怪的問題:當我嘗試使用1個參數的方式調用jQuery的某些方法時,參數卻無效了。在查閱了一些資料之后,我找到了問題的根源。
首先,我們來看一下一個典型的jQuery方法調用:
$('p').hide(500);
上面的代碼意思是:選中網頁中所有的
標簽,然后以500毫秒的速度隱藏它們。這個調用中有兩個參數:選擇器和動畫時間。
然而,在某些情況下,我們可能只需要傳遞一個參數。例如,如果我們只想選中網頁中id為myDiv的元素,那我們可以這樣寫:
$('#myDiv');
但是,如果我們試圖采用上面的方式來修改某些元素的屬性,就會出現參數無效的問題:
$('p').width(100);
上面的代碼的意思是:選中網頁中所有的
標簽,然后將它們的寬度設置為100像素。然而,這個調用中只有一個參數:100。結果,實際上我們并沒有修改任何元素的寬度。
那么這個問題的原因是什么呢?其實,這是因為jQuery對參數的數量有著極其嚴格的要求。雖然很多方法可以接受多個參數,但是只有第一個參數是必需的。如果你沒有將第一個參數作為單獨的參數傳遞,而是將它作為對象的成員傳遞,jQuery就會認為你沒有傳遞任何參數。
所以,如果你要修改某個元素的屬性,一定要將屬性名作為單獨的參數傳遞:
$('p').width(100);
如果你將屬性名作為對象的成員傳遞,那么jQuery就會認為你沒有傳遞任何參數:
$('p').css({width: 100});
通過以上的方法,我們就能避免jQuery 1參數無效的問題。
上一篇jquery 1.9.2
下一篇如何獲取網站css