我是新手。这是我的代码:
<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]'。
答案 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