首先,说明这不是一个简单的问题!

先说取值:

$("#textarea").text();读取,最近测试时候发现在firefox中读取不出textArea的值,IE正常
于是修改为:

$("#textarea").val();
   问题解决,不过搜索时,发现有人提另一个问题:
   当在一个textarea标签中键入一个回车时,实际上会插入2个符号:\n\r \n 回车符 \r 换行符
 如果用text()获取textarea中的值,那么存入数据库的数据就只会有\r 如果用var()获取textarea中的值,
那么存入数据库的数据就只会有\n 这样的区别就是,在IE下,
你如果是读取用text()存入的数据在展示在textarea中,那么数据的换行是正常的。
而读取用var()存入的数据在展示在textarea中,那么数据的就不会换行。
没有具体测试过看来用val()也不妥当。但是这也是必求之策。
   再说赋值:
   看代码:
$("<div id='x1'><textarea id='t1'></textarea>" +
 "<textarea id='t2'></textarea></div>").appendTo("body");
$("#t1").text("AAA");$("#t2").val("BBB");
alert("t1=" + $("#t1").text() + "/" + $("#t1").val());
alert("t2=" + $("#t2").text() + "/" + $("#t2").val());
alert($("#x1").html());

在IE下,不管用val()或text()设定,后续的读取都正常;但在Firefox下,使用val()指定的值,画面上会出现,但是用text()或是透过html()检视时却是字串。因此在Firefox中,如果你希望设定给textarea值出现在html()中或可以被clone(),请用text(...)设定。

且慢!! 事情如果这麽单纯,那麽连小学生也会跨浏览器了。使用text()设定时得注意换行问题,若你在IE中下text("A\nA"),在显示时只会呈现空一格而不会换行。依我测试的结果,在IE下text("A\r\A")得到显示结果比较接近预期,但是text("A\rA")在Firefox中显示时会换列,用text()取出时却是连在一起的... 这... 这... 这...

最后,只能采取懦夫策略,在呼叫.clone()前做了这件事迴避问题:

   $theDiv.find("textarea").each(function() { $(this).text($(this).val()); }); 

更多相关文章

  1. 服务器数据库系列 - 日志系列 - Nginx日志
  2. 指导我优化我的PHP代码,用数组中的空数据填充缺失值
  3. thinkPHP的数据添加、修改、删除
  4. 在MySQL数据库中搜索与多个Tag记录相关/包含的书签
  5. 使用jquery和php手动在数据库中增加一个字段[复制]
  6. android json php测试输出垃圾
  7. 如何使用ajax向php发送与每个按钮相关的数据?
  8. php标准库 SPL 数据结构之-----SplDoublyLinkedList(双向链表)
  9. php 封装原生数据导出的方法

随机推荐

  1. CentOS 下三种 PHP 拓展安装方法
  2. PHP编译参数configure配置详解
  3. PHP使用swoole实现多线程爬虫
  4. 怎么将网站的php版本信息隐藏起来
  5. php实现性能优化
  6. 关于php中变量的初始化以及赋值方式的介
  7. 通过header函数设置响应头解决php跨域问
  8. PHP安装BCMath扩展
  9. 浅析PHP类的自动加载和命名空间
  10. 关于在php中使用curl发送get请求时参数传