7

我是新手。这是我的代码:

<html>
  <head>
    <script type="text/javascript">
      function replyOne () {
        document.getElementById("comment_content").value = document.getElementById("username")
      }
    </script>
  </head>
  <body>
    <p id="username">Jack</p>
    <textarea id="comment_content" ></textarea>
    <button onclick="replyOne()">Copy Text</button>
  </body>
</html>

我希望当我单击按钮时,它会将“Jack”复制到文本区域。但它只是写了“[object HTMLParagraphElement]”。

4

3 回答 3

22

它应该是:

document.getElementById("comment_content").value =
    document.getElementById("username").innerHTML

如果没有.innerHTML,它将尝试复制实际元素,而不是其内容。

于 2013-04-22T12:47:58.650 回答
1

您可以使用 textContent、innertext、innerHTML。但其中两个是特定于浏览器的,innerHTML 可以在三种主要浏览器上运行。

您也可以通过父子组合解析 dom 并获得所需的值。

 function replyOne () {
    document.getElementById("comment_content").value=document.getElementById("username").innerHTML;

    //OR 
    document.getElementById("comment_content").value=document.getElementById("username").textContent;

    }
于 2013-04-22T13:07:40.380 回答
-1

这是 [objectHTMLParagraphElement] 的解决方案,带有示例

var sel = document.getElementById('ex').innerHTML; // without innerHTML this will 
comes [objectHTMLParagraphElement]
var txt = sel + "Hello";    
document.write(txt); // output Hello
于 2021-03-09T07:27:47.463 回答