克隆textarea时跨浏览器的jQuery不一致行为

时间:2015-12-14 13:49:24

标签: jquery clone

$(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”。 / p>

根据clone()方法的文档,不会复制输入textarea的用户数据。

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

1 个答案:

答案 0 :(得分:1)

查看文档:

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

  

为确保跨平台兼容性,代码段必须格式正确。可以包含其他元素的标记应与结束标记配对。

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