我正在使用jQuery,並想知道是否應該使用val()或text()(或其他方法)來讀取和更新textarea的內容。val()與textarea的文本()
我已經嘗試過兩種方法,而且我遇到了問題。當我使用text()更新textarea時,換行符(\ n)不起作用。當我使用val()來檢索textarea內容時,如果文本太長,文本會被截斷。
我正在使用jQuery,並想知道是否應該使用val()或text()(或其他方法)來讀取和更新textarea的內容。val()與textarea的文本()
我已經嘗試過兩種方法,而且我遇到了問題。當我使用text()更新textarea時,換行符(\ n)不起作用。當我使用val()來檢索textarea內容時,如果文本太長,文本會被截斷。
設置/獲取文本區域值的最佳方法是.val()
,.value
方法。
.text()
在內部使用.textContent
(或.innerText
for IE)方法來獲取<textarea>
的內容。下面的測試案例說明如何text()
和.val()
之間的相互關係:
var t = '<textarea>';
console.log($(t).text('test').val()); // Prints test
console.log($(t).val('too').text('test').val()); // Prints too
console.log($(t).val('too').text()); // Prints nothing
console.log($(t).text('test').val('too').val()); // Prints too
console.log($(t).text('test').val('too').text()); // Prints test
的value
財產,通過.val()
使用始終顯示當前可見的價值,而text()
的返回值可以是錯誤的。
thx,現在就試試這個。我目前無法複製我用val()和截斷的問題。也許我得到了錯誤的嫌疑...... – Christophe 2012-01-13 21:23:28
感謝一堆例子。顯然這是我的問題,我用text()編寫並用val()讀取。 – Christophe 2012-01-14 03:02:00
使用'text()'改變textarea的值在手動改變任何東西之後不再起作用(例如添加一個字符) – Jan 2017-07-03 15:37:39
通過屬性名稱而不是id選擇<textarea>
。
<textarea id="message" name="message"></textarea>
<script>
jQuery("textarea[name='message']").val();
</script>
這是怎麼得到的嗎?這與問題完全無關,並且絕對沒有價值。這也是一個糟糕的指導,因爲在選擇器中使用ID效率更高,並且不會選擇具有相同名稱的多個textareas。 – michael 2016-06-24 20:01:22
.val()
總是適用於textarea
元素。
.text()
工作有時會失敗其他時間!這是不可靠的(在Chrome 33測試)
最好的是,.val()
也可以無縫地與其他表單元素(如input
),而.text()
失敗。
您是否嘗試過html()? – Znarkus 2012-01-13 16:59:31
這是什麼意思換行符不起作用? – kaz 2012-01-13 17:00:16
@Znarkus:不... – Christophe 2012-01-13 17:01:34