2013-04-22 227 views
2

我是一個新手。這裏是我的代碼:爲什麼我得到[object HTMLParagraphElement]

<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> 

我希望當我點擊按鈕時,它會複製'傑克'到textarea。但是,它只是寫'[object HTMLParagraphElement]'。

回答

10

它應該是:

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

沒有.innerHTML,它會嘗試在實際的元素進行復制,而不是它的內容。

+0

明白了。非常感謝。 :) – hsming 2013-04-22 12:51:35

+0

@hsming沒問題! :) – Doorknob 2013-04-22 12:51:48

+0

@hsming:不要忘記打勾(接受)爲你工作的答案。 – halfer 2013-04-22 12:59:11

1

您可以使用textContent,innertext,innerHTML.But其中兩個是瀏覽器特定的,而innerHTML可以在三個主要瀏覽器上工作。

你也可以通過父母孩子的組合解析dom,並將獲得所需的價值。

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

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

    }