这个https://jsfiddle.net/xa9m49zy/演示了您可以获得在DOM呈现时位于DOM中的文本区域的outerHTML (带有文本区域值),但是当textarea被动态添加到DOM时,outerHTML不包含文本区域值。它不工作在火狐和Chrome,但它确实工作在IE和边缘。
HTML:
<textarea id="abc">
Test
</textarea>
联署材料:
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中的一个bug吗?
发布于 2016-03-15 17:23:33
问题是,您正在使用设置第二个textarea
的.val()
值,但是outerHTML
不检索值,而是检索该元素的元素和content。
textarea
元素从它们的content中获取它们的值。
如果使用方法为第二个
textarea
设置.text()
内容,则该方法有效。
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
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<textarea id="abc">
Test
</textarea>
https://stackoverflow.com/questions/36017974
复制相似问题