2014-02-12 32 views
3

我的印象是「val()」應該用於輸入元素,「text()」應該用於所有其他元素。Val vs JQuery中的文本

然而,當我做到以下幾點:

$("<input/>").val("test") 

我得到

[<input>​] 

,當我去了以下內容:

$("<input/>").text("test") 

我得到

[<input>​test​</input>​] 

後者是我正在尋找的。

使用jquery創建我失蹤的元素時有什麼不同嗎?我的實際情況比這更復雜,但爲了這個問題我簡化了它。

+0

OK,經過進一步的研究,卻彷彿,值「測試」實際上是設置,例如當我將項目追加到屏幕上時,我可以看到它。 '$( '身體')。append($(「」).val(「test」))'我只是認爲它不工作,因爲輸入元素的值不顯示在控制檯窗口中鉻...猜我會認爲它會顯示爲' – kralco626

回答

0

.text()返回所有匹配元素的組合的文本內容(例如,P,DIV,等等).val()用於獲得一個輸入元件(如輸入,選擇等)的值

根據官方文件.text()不應與input elements一起使用。

這是一個reference

UPDATE:嘗試通過純JavaScript來實現這一點,這樣:

HTML:

<input type='text' id='myinput' /> 

Javascript:

給定值到輸入元件:

document.getElementById("myinput").value = 'Your value here' 

獲取價值這樣

var myinputval = document.getElementById("myinput").value 
4

.VAL()對於HTML屬性 「值」

的.text()是的innerHTML(類似於.HTML ())

+0

我想我的觀點是我的印象是'val()'對我們來說是'input'的正確選擇。 – kralco626

+0

@ kralco626,它*是*用於''元素的正確值。 ' test'是無效的HTML。 – zzzzBov

+0

啊是的,看到我的評論。就好像Chrome在打印到控制檯時實際上並未將該值附加爲屬性一樣。所以它就在那裏,它只是隱藏起來。 – kralco626

0

如果您將值傳遞到.text().val(),它會將該數據發送到匹配的元素。如果你正在嘗試的目標是:

<input type="text" val="the value" /> 

嘗試jQuery中使用這樣的:

var $testRes = $('input').attr('val'); 

console.log($testRes); // the value