我有幾個輸入框可以動態創建,然後填充。當我嘗試閱讀這些內容時,我只是將「未定義」作爲答案。這使我很沮喪,因爲相同的代碼在我的web應用程序的其他地方無處不在。 我用抓值的代碼看起來是這樣的:我無法從輸入框中獲取值
$('#box1.1').val()
所以這應該使用id =「box1.1」返回元素的值,是嗎?
Firebug的控制檯:
>>> $('#box1.1').val()
undefined
是的,我也使用jQuery。版本1.6.2。
在此先感謝!
我有幾個輸入框可以動態創建,然後填充。當我嘗試閱讀這些內容時,我只是將「未定義」作爲答案。這使我很沮喪,因爲相同的代碼在我的web應用程序的其他地方無處不在。 我用抓值的代碼看起來是這樣的:我無法從輸入框中獲取值
$('#box1.1').val()
所以這應該使用id =「box1.1」返回元素的值,是嗎?
Firebug的控制檯:
>>> $('#box1.1').val()
undefined
是的,我也使用jQuery。版本1.6.2。
在此先感謝!
你應該用兩個反斜槓轉義點,所以jQuery不把.1
作爲一個類。
$('#box1\\.1').val();
這不是一個有效的ID(至少用jQuery的說法):「box1.1」。你不能在id中有一個點,因爲它會混淆jQuery選擇器引擎,因爲dot通常意味着一個類名。
您可以更改ID以說:「box1_1」並嘗試。
這裏有一個演示小提琴:http://jsfiddle.net/UnUYP/
在jQuery中,週期具有特殊的意義。它們用於爲類選擇器添加前綴。 jQuery無法知道.1是ID的一部分,而不是一些名爲1的CSS類。您應該使用一個沒有特殊含義的字符,例如下劃線。
沒有那是尋找一個ID爲「box1」的應用程序名爲「1」... 在jquery選擇器中#引用一個id選擇器(CSS選擇器)和。指的是一個類名。最佳做法,以避免使用期間的ID值
這是一般最好把jQuery中的$
功能的東西,它接受CSS選擇器的一個逗號劃定名單。在CSS中,.
手段,「與類名對象......」因此,jQuery是尋找具有類1.基本上BOX1 ID下的東西,在這個例子:
<div id="box1"><span class="1"></span></div>
的jQuery會返回跨度。在此示例中:
<div id="box1.1"><span class="not_1"></span></div>
jQuery必然返回undefined
。
因爲您的ID會導致CSS中的衝突,所以您最好打賭就是簡單地從類名稱本身中刪除.
。通常_
或-
將是優選的。
這絕對是最簡單的例子。的。語法被保留來描述一個類,但是你開始使用一個ID作爲散列(#)。這些是衝突的,並導致你的未定義的返回值。 – Jake
您的選擇器試圖獲取此元素:'' –