我有这个结构的网页:
<div id="report_content">
Some information
<textarea name="personal"></textarea>
<b>Other information</b>
<textarea name="work"></textarea>
</div>
在textareas中写了一些文本之后,我使用jquery来获取整个html。结果是textareas是空的,好像我没有在里面写任何东西。
我猜这是因为他们不接受html,但我需要获取包含textarea内容的html。
到目前为止,我发现的唯一解决方案是将textareas转换为div,然后为它们分配textarea内容。
还有其他方法可以避免这种转换吗?
答案 0 :(得分:5)
问题是.html()
无法获得值(这是人们在textearea中输入的内容将进入的内容)。你可以在获得完整的html之前将innerHTML设置为值,就像这样......
$('textarea').each(function () {
$(this).html($(this).val());
});
var html = $("#report_content").html();
console.log(html);
或...用较少的jquery包装......
var html = $("#report_content").find("textarea").each(function () {
this.innerHTML = this.value;
}).end().html();
console.log(html);