今天在做一个模板加载的小功能时,通过<option>.change()函数触发,向后台发送一个AJAX请求,然后将请求回来的内容在textarea里面进行显示,当时用的jQuery函数是$('#content').html();因为textarea是没有value属性的,所以用js的话要用innerHtml()方法,但是发现在使用.html()函数的时候发现如果我有修改里面的内容,下回我再触发这个事件的时候html()就无效了,内容无变化。
在网上搜了一下,觉得这篇文章写得挺详细的:JQuery TextArea的取值与赋值问题
但是觉得还是有点复杂,所以自己就试了一下val()函数,发现这时候前面的问题解决了,但是新的问题又出来了,就是如果有空格的话,显示的时候也有很多空格,保险起见,就先将ajax请求得到的数据用trim()函数进行去除空格,然后再使用$('#content').val('o.data.text');
如果想直接用JS操作textarea的话也可以,摘抄网上的一些:
<script type="text/javascript">
function changeTextArea(){
document.getElementById("myTextArea").innerText=document.getElementById("myTextArea").innerText+"\ninnerText is ok!";
document.getElementById("myTextArea").innerHTML=document.getElementById("myTextArea").innerText+"\ninnerHTML is ok!";
document.getElementById("myTextArea").value=document.getElementById("myTextArea").innerText+"\nvalue is ok!";
}
</script>