val()与textarea的text()
我正在使用jQuery,并想知道是否应该使用val()或text()(或另一种方法)来读取和更新textarea的内容。
我已经尝试过,而且两者都有问题。 当我使用text()更新textarea时,换行符(\ n)不起作用。 当我使用val()来检索textarea内容时,如果文本太长,文本会被截断。
设置/获取textarea值的最好方法是.val()
方法。
.text()
内部使用.textContent
(或.innerText
for IE)方法来获取<textarea>
的内容。 以下testing用例说明了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
.val()
使用的value
属性总是显示当前的可见值,而text()
的返回值可能是错误的。
.val()
总是和textarea
元素一起工作。
.text()
有时会起作用,并会在其他时间失败! 这是不可靠的(在Chrome 33中testing)
最好的是.val()
可以与其他表单元素(如input
)无缝地工作,而.text()
失败。
通过属性名称而不是idselect<textarea>
。
<textarea id="message" name="message"></textarea> <script> jQuery("textarea[name='message']").val(); </script>