3 回答

TA貢獻(xiàn)1844條經(jīng)驗 獲得超8個贊
對象屬性和對象屬性之間存在很大差異
有關(guān)一些差異,請參閱此問題(及其答案):。prop()vs .attr()
要點(diǎn)是.attr(...)
只在開始時獲取對象值(創(chuàng)建html時)。val()
獲取對象的屬性值可以多次更改。

TA貢獻(xiàn)2011條經(jīng)驗 獲得超2個贊
僅供將來參考,我提供了一個很好的例子,可以幫助我們解決疑問:
請嘗試以下方法。在這個例子中,我將創(chuàng)建一個文件選擇器,可用于選擇文件,然后我將嘗試檢索我選擇的文件的名稱: HTML代碼如下:
<html> <body> <form action="#" method="post"> <input id ="myfile" type="file"/> </form> <script type="text/javascript" src="jquery.js"> </script> <script type="text/javascript" src="code.js"> </script> </body></html>
code.js文件包含以下jQuery代碼。嘗試逐個使用兩個jQuery代碼片段并查看輸出。
帶attr的jQuery代碼('value'):
$('#myfile').change(function(){ alert($(this).attr('value')); $('#mybutton').removeAttr('disabled');});
帶val()的jQuery代碼:
$('#myfile').change(function(){ alert($(this).val()); $('#mybutton').removeAttr('disabled');});
輸出:
帶有attr('value')的jQuery代碼的輸出將是'undefined'。帶有val()的jQuery代碼輸出將是您選擇的文件名。
說明:現(xiàn)在您可以輕松理解最佳答案想要表達(dá)的內(nèi)容。帶有attr('value')的jQuery代碼的輸出將是'undefined',因為最初沒有選擇文件,所以值是未定義的。最好使用val(),因為它獲取當(dāng)前值。
為了了解返回未定義值的原因,請在HTML中嘗試此代碼,您將看到attr。('value')始終返回'test',因為該值為'test',之前未定義。
<input id ="myfile" type="file" value='test'/>
我希望它對你有用。
- 3 回答
- 0 關(guān)注
- 438 瀏覽
添加回答
舉報