jQuery在克隆文本区域时跨浏览器的不一致行为



$(function() {
  var $t = $("<textarea>", {
    text: "foobar"
  });
  $t.val("");
  console.log($t.val());
  console.log($t.html());
  var $copy = $t.clone();
  console.log($copy.val());
  console.log($copy.html());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>

上面的代码记录了Firefox 42.0和Chrome 43上的"、"foobar"、"foobar"、"foobar",IE 11和Chrome 47上的日志"、"foobar"、"、"foobar"。

根据clone()方法的文档,键入到文本区域的用户数据不会被复制。

Chrome 47上的行为似乎不正确,是吗?

检查文档:

http://api.jquery.com/jQuery/#jQuery2

为了确保跨平台兼容性,代码片段必须格式良好。可以包含其他元素的标记应该与结束标记成对出现。

因此,我将把$("<textarea>")更改为$("<textarea></textarea>")

最新更新