簡體   English   中英

.attr(“ value”)始終返回未定義?

[英].attr(“value”) is always returning undefined?

我在jQuery中有一個隱藏元素:

<input type="hidden" id="1val" value="24">
var valID = $("#1val").attr("value");

但是,當我嘗試打印valID時,總是將其打印為undefined嗎? 我究竟做錯了什么?

謝謝

使用.prop().val()方法獲取當前value屬性總是更安全:

var valID = $("#1val").val();
// or
var valID = $("#1val").prop("value");

從jQuery 1.9版本開始, .attr()方法將僅獲取元素的屬性,而該屬性實際上可能無法反映元素的實際屬性。


根據1.9版發行說明 ,在.attr().prop()

輸入元素的值屬性與屬性是這種歧義的另一個示例。 該屬性通常反映從HTML標記讀取的值; 該屬性反映當前值 由於.val()方法是獲取或設置表單元素值的推薦jQuery方法,因此這種混淆通常不會影響用戶。

但是,當使用類似input[value=abc]類的選擇器時,應始終按value屬性選擇,而不應由用戶對屬性進行任何更改,例如從他們鍵入文本輸入中進行選擇。 從jQuery 1.9開始,此行為正確且一致。 早期版本的jQuery在應使用屬性時有時會使用屬性。

在底層,從1.9版開始, .attr()方法將僅返回元素的當前屬性(而不返回屬性)。 該屬性和屬性實際上可能並不相同。 例如,如果元素上最初沒有屬性,然后使用.val()類的方法以編程方式設置了值,則該屬性將不會更改,這意味着.attr('value')將返回undefined

如上所述,使用.prop().val()方法以獲取元素的當前value屬性。

使用$('#input-id').val(); 獲得投入的價值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM