tex()与textarea的text()

时间:2012-01-13 16:58:21

标签: jquery forms textarea

我正在使用jQuery,并想知道是否应该使用val()或text()(或其他方法)来读取和更新textarea的内容。

我已经尝试了两种方式,但我遇到了两个问题。当我使用text()更新textarea时,换行符(\ n)不起作用。当我使用val()来检索textarea内容时,如果文本太长,文本会被截断。

2 个答案:

答案 0 :(得分:146)

设置/获取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()的返回值可能是错误的。

答案 1 :(得分:10)

.val()始终适用于textarea元素。

.text()有时可以工作,有时会失败!它不可靠(在Chrome 33中测试)

最好的是.val()与其他表单元素无缝协作(如input),而.text()失败。