我在noConflict模式下使用jQuery v1.6.1。jQuery ID選擇器(「#id」)返回數組
我使用id選擇器(如$j("#divID").value
)來獲取存儲項目的值。
不幸的是,$j("#inputID")
正在返回一個項目列表,所以我必須使用$j("divID")[0].value
來獲取對象的值。 [0]
似乎沒有必要,因爲根據定義,只有一個具有任何給定id的html元素。
這是從IDed對象獲取值的適當方式嗎?或者,還有更好的方法?
謝謝!
我在noConflict模式下使用jQuery v1.6.1。jQuery ID選擇器(「#id」)返回數組
我使用id選擇器(如$j("#divID").value
)來獲取存儲項目的值。
不幸的是,$j("#inputID")
正在返回一個項目列表,所以我必須使用$j("divID")[0].value
來獲取對象的值。 [0]
似乎沒有必要,因爲根據定義,只有一個具有任何給定id的html元素。
這是從IDed對象獲取值的適當方式嗎?或者,還有更好的方法?
謝謝!
$j("#divID").val()
將工作得很好。
根據jQuery documentation,.val()
將返回匹配元素集合中第一個元素的值。
從概念上理解jQuery是如何工作的,以便了解它爲什麼以這種方式工作是值得的。任何選擇器查詢的結果都是一個jQuery對象。這就是包含jQuery提供的無數方法的jQuery對象。 .val()
是其中一種方法,如.fadeIn()
,.hide()
等...這些方法不是DOM對象上的方法,而是jQuery對象的方法。由於jQuery對象具有通用性,並且可以在其內部數組中保存0個,1個或多個DOM對象,因此無論結果中是否有0個,1個或多個DOM對象,您都會從jQuery選擇器調用中返回相同的jQuery對象。
因此只包含一個對象的$j("#divID")
返回與$j(".rows")
相同類型的對象,其中可能包含數百個DOM對象。這極大地簡化了jQuery編程,因爲根據從選擇器查詢返回的對象數量,您不必採取不同的處理方式。
當您參考$j("divID")[0]
時,您將訪問jQuery對象內部的DOM對象數組(在選擇器查詢中填充)並獲取該數組中的第一個DOM對象。在這一點上,你有一個正常的DOM對象,而不是一個jQuery對象,你可以使用普通的DOM方法或屬性。有時候這是必需的(以獲取實際的DOM對象),但通常,使用jQuery在jQuery對象上提供的方法更容易。使用它們有很多優點,例如可以將多個請求鏈接到大多數方法,並且它會自動遍歷其內部數組中的所有DOM對象。
例如,你叫這個:$j("rows-even").hide()
並且有20行的那個類,那麼所有這些都將被hide()方法操作,沒有比這更多的代碼。你可以像這樣鏈接多個方法:$j("rows-even").slideUp().slideDown()
。在這種情況下,您正在運行動畫,並且jQuery將這兩個動畫鏈接在一起,當第一個動畫完成時自動啓動第二個動畫。在許多情況下它都非常有用,並且可以節省大量通常必須使用普通JS編寫的代碼。
$j("#divID")
返回jQuery
對象。爲了得到所選元素的值,你必須調用它的val
方法來獲取值。
使用$j("#divID").val();
您的意思是不是'.val()'? – user113716
如果'#divID'確實指向'div',那麼'value'或'.val()'不起作用。只有表單元素具有「價值」屬性。 –
好點,@Felix。我糾正了這個問題。 – Richard