簡體   English   中英

我無法從輸入框中獲取值

[英]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();

http://docs.jquery.com/Frequently_Asked_Questions#How_do_I_select_an_element_by_an_ID_that_has_characters_used_in_CSS_notation.3F

通常最好將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.

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