为什么我得到[object HTMLParagraphElement]

时间:2013-04-22 12:47:21

标签: javascript

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

<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'复制到textarea。 但它只是写'[object HTMLParagraphElement]'。

3 个答案:

答案 0 :(得分:14)

应该是:

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

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

答案 1 :(得分: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;

    }

答案 2 :(得分:-1)

这是[objectHTMLParagraphElement]的解决方案

var sel = document.getElementById('ex').innerHTML; // without innerHTML this will 
comes [objectHTMLParagraphElement]
var txt = sel + "Hello";    
document.write(txt); // output Hello