如何解码<div> innerHTML到<textarea> </textarea> </div>

时间:2012-10-27 22:42:11

标签: javascript html

下面的

是我网页中的<div><textarea>

    <div id="div_1" onclick="document.getElementById("textarea_1").innerHTML=document.getElementById("div_1").innerHTML;">
    paragraph 1

    paragraph 2

    paragraph 3

    paragraph 4
    </div>
<textarea id="textarea_1"></textarea>

当我点击div时,我需要将<div> innerHTML显示为<textarea>

但它来自下面

<textarea id="textarea_1">paragraph 1<br><br>paragraph 2<br><br>paragraph 3<br><br>paragraph 4</textarea>

我需要这样的输出(<div>的正确格式)

   <textarea id="textarea_1">
        paragraph 1

        paragraph 2

        paragraph 3

        paragraph 4
    </textarea>

3 个答案:

答案 0 :(得分:4)

您的onclick格式不正确。您使用"分隔它并使用"作为内部字符串分隔符。

您还使用比较运算符==而不是赋值运算符=

onclick="document.getElementById("textarea_1").innerHTML==document.getElementById("div_1").innerHTML;"

这会更好用:

onclick='document.getElementById("textarea_1").innerHTML=document.getElementById("div_1").innerHTML;'

现在,要解决实际问题 - 在需要换行时获取<br>元素。

当你这样做时:

document.getElementById("div_1").innerHTML

您需要使用换行符替换<br>元素:

document.getElementById("div_1").innerHTML.replace(/<br>/g, "\n")

答案 1 :(得分:1)

document.getElementById("textarea_1").innerHTML = document.getElementById("div_1").innerHTML.replace(/<br>/g, "\n");

这应该可以解决问题,你必须用真正的换行符替换<br>标签。

答案 2 :(得分:1)

您可以在textarea

上使用value而不是innerHTML
<!doctype html>
<html>
<head>
    <title>Site Title</title>
</head>
<body>
    <div id="div_1" onclick="document.getElementById("textarea_1").value = document.getElementById('div_1').innerHTML;">
        paragraph 1

        paragraph 2

        paragraph 3

        paragraph 4
    </div>
    <textarea id="textarea_1"></textarea>
</body>

`