[英]I cannot grab a value from an input box
我有幾個輸入框可以動態創建,然后填充。 當我嘗試閱讀這些內容時,我只是得到“未定義”作為答案。 這讓我很生氣,因為相同的代碼可在我的Web應用程序上的其他地方無處不在。 我用於獲取值的代碼如下所示:
$('#box1.1').val()
所以這應該返回id =“ box1.1”的element的值,對嗎?
Firebug控制台:
>>> $('#box1.1').val()
undefined
是的,我確實使用jQuery。 版本1.6.2。
提前致謝!
您應該使用兩個反斜杠對點進行轉義,以使jQuery不會將.1
視為類。
$('#box1\\.1').val();
通常最好將jQuery中的$
函數視為接受逗號分隔的CSS選擇器列表的東西。 在CSS中, .
意思是,“對象的類名為...”,因此,jQuery在box1 id下尋找類為1的對象。基本上,在此示例中:
<div id="box1"><span class="1"></span></div>
jQuery將返回范圍。 在此示例中:
<div id="box1.1"><span class="not_1"></span></div>
jQuery必然返回undefined
。
由於您的ID會導致CSS發生沖突,因此最好的選擇就是刪除.
從類中自己命名。 通常, _
或-
是更可取的。
這不是有效的ID(至少在jQuery中是這樣):“ box1.1”。 id中不能包含點,因為它會混淆jQuery選擇器引擎,因為點通常表示類名。
您可以將ID更改為:“ box1_1”,然后嘗試。
這是一個演示小提琴: http : //jsfiddle.net/UnUYP/
在jQuery中,句號具有特殊含義。 它們用於為類選擇器添加前綴。 jQuery無法知道.1是ID的一部分,而不是某些名為1的CSS類。您應該使用沒有特殊含義的字符,例如下划線。
否,這是在查找ID為“ box1”且應用了名為“ 1”的類的元素...在jquery選擇器中,#表示ID選擇器(css選擇器),而#則是ID。 指的是一個類名。 避免對ID值使用句點的最佳做法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.