使html()包含输入textarea的内容

时间:2014-11-07 16:03:28

标签: javascript jquery html dom textarea

我有这个结构的网页:

<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内容。

还有其他方法可以避免这种转换吗?

1 个答案:

答案 0 :(得分:5)

问题是.html()无法获得值(这是人们在textearea中输入的内容将进入的内容)。你可以在获得完整的html之前将innerHTML设置为值,就像这样......

JSFiddle

$('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);