最近在做一個(gè)項(xiàng)目的時(shí)候,調(diào)用了jQuery 1.8.0的庫文件。在運(yùn)行時(shí)卻出現(xiàn)了一些奇怪的報(bào)錯(cuò),導(dǎo)致程序無法正常運(yùn)行。
我經(jīng)過一番排查后,發(fā)現(xiàn)了其中的問題所在。原來,jQuery 1.8.0版本中對(duì)一些函數(shù)進(jìn)行了修改,導(dǎo)致我們?cè)谑褂眠@些函數(shù)的時(shí)候,需要注意一些細(xì)節(jié)問題。為了讓大家更好地理解,下面我會(huì)結(jié)合實(shí)際的代碼來具體說明。
$(document).on("click", "#btn", function(){ alert($(this).val()); });
上面這段代碼主要是用于監(jiān)聽一個(gè)按鈕的點(diǎn)擊事件,并且在按鈕被點(diǎn)擊時(shí)彈出一個(gè)提示框,顯示按鈕的值。在jQuery 1.7.0及以下版本中,這段代碼是可以正常運(yùn)行的。但是在1.8.0版本中,卻會(huì)出現(xiàn)以下錯(cuò)誤:
TypeError: $(...).val is not a function
這是由于在1.8.0版本中,jQuery對(duì).val()函數(shù)進(jìn)行了修改,只有輸入框才支持該函數(shù),而按鈕并不支持。因此,如果我們想獲取按鈕的值,應(yīng)該使用另一個(gè)函數(shù)——.text()。
修改后的代碼如下:
$(document).on("click", "#btn", function(){ alert($(this).text()); });
通過上述修改,我們就可以在jQuery 1.8.0版本中正常獲取按鈕的值了。
總之,jQuery 1.8.0版本對(duì)一些函數(shù)進(jìn)行了修改,需要我們?cè)谑褂玫臅r(shí)候注意一些細(xì)節(jié)問題。希望本文能對(duì)大家有所幫助。