无法获得动态添加的textarea的outerHTML / value

时间:2016-03-15 17:19:40

标签: javascript html

这个小提琴https://jsfiddle.net/xa9m49zy/表明你可以在渲染时获得DOM中的textarea的outerHTML(带有文本区域值),但是当textarea动态添加到DOM时,outerHTML不会不包含文本区域值。它在Firefox和Chrome中不起作用,但它 在IE和Edge中工作。

HTML:

<textarea id="abc">
  Test
</textarea>

JS:

console.log($("#abc").get(0).outerHTML); //returns everything as expected
$("<textarea id='xyz'></textarea>").val("Test 2").appendTo("body");
console.log($("#xyz").get(0).outerHTML); //only shows <textarea></textarea> in non-MS browsers

这里发生了什么?这是Chrome和Firefox中的错误吗?

1 个答案:

答案 0 :(得分:3)

问题是您使用textarea设置了第二个.val(),但是outerHTML没有检索值,它会检索一个元素,该元素的内容

textarea元素从内容中获取价值。

  

如果您使用第二个textarea设置内容   .text()方法,它有效。

&#13;
&#13;
alert($("#abc").get(0).outerHTML); //returns everything as expected
$("<textarea id='xyz'></textarea>").text("Test 2").appendTo("body");
alert($("#xyz").get(0).outerHTML); //only shows <textarea></textarea> in non-MS browser
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<textarea id="abc">
  Test
</textarea>
&#13;
&#13;
&#13;