1. 程式人生 > >val和attr和prop獲取資料中的區別

val和attr和prop獲取資料中的區別

var vals = $('#id').val();

var attrs = $('#id').attr('value');

var props = $('#id').prop('value');

程式碼如上所示,為輸入框設定了初始值:123,此時點選按鈕,控制檯輸出為:

?
1 2 3 123 123 123

改變輸入框的值,此時控制檯輸出:    

?
1 2 3 123 123thgf 123thgf

如果我們沒有為文字框設定初始值,即刪除value=”123”後,依舊使用如上js程式碼,則相應輸出如下:

undefined

attr()輸出為undefined,而prop()和val()輸出為“空”。

輸入value值後:控制檯輸出為:

?
1 2 3 undefined asdasd asdasd

attr()輸出依然為undefined,而prop()和val()則輸出實際值。

可見,prop()和val()都能獲取到文字框的實際value值,而attr()獲取的則始終為文件結構中的value的屬性值,與文字框實際值無關,並不會變化。