javascript 为什么我得到了[对象HTMLParagraphElement]

n3schb8v  于 2023-01-01  发布在  Java
关注(0)|答案(4)|浏览(158)

我是一个新手。下面是我的代码:

<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 HTMLAragraphElement]”。

b1uwtaje

b1uwtaje1#

它应该是:

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

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

14ifxucb

14ifxucb2#

你可以使用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;

    }
iklwldmw

iklwldmw3#

您需要使用obj.innerText属性提取您要查找的内容,您将解决以下问题:

var t= document.getElementById("comment_content");
var text=t.innerText;
alert(t);
ykejflvf

ykejflvf4#

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

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

相关问题