0

我对 innerHTML 和 getElementsById() 有疑问;方法,但我不确定这两种方法是否是我遇到的问题的根源。

这是我的代码:

<script type="text/javascript">

     function clearTextField(){
         document.getElementsById("commentText").value = "";
     };

     function sendComment(){
         var commentaire = document.getElementById("commentText").value;
         var htmlPresent = document.getElementById("posted");

         htmlPresent.innerHTML = commentaire;
         clearTextField();
     };
</script>

我的 HTML 代码是这样的:

<!doctype html>
<html>
 <head></head>
  <body>

   <p id="posted"> 
   Text to replaced when user click Send a comment button
   </p>

   <form>

  <textarea id="commentText" type="text" name="comment" rows="10" cols="40"></textarea> 
  <button id="send" onclick="sendComment()">Send a comment</button> 

   </form>
  </body>
 </html>

所以理论上,这段代码将从文本区域获取用户输入并替换<p>标记之间的文本。它实际上工作了半秒钟:我看到文本迅速变为用户在 textarea 中输入的内容,标记之间的文本<p>被用户输入替换,<textarea>并立即返回到原始文本。

之后,当我检查源代码时,html 代码并没有改变一点,因为 html 应该已经被 textarea 中的任何用户输入所替换。

我尝试了三种不同的浏览器,我也尝试过 getElementByTagName(); 方法没有成功。

我错过了什么吗?我的代码看起来合法且干净,但有些东西正在逃脱我的掌握。

我想要的这段代码是用<p>文本区域中的用户输入替换给定标记(如)之间的 HTML 代码,但它只替换它几毫秒并返回到原始 html。

任何帮助,将不胜感激。

编辑:我想将文本添加到 html 页面。更改页面上可见的文本。不一定在源头。. .

4

3 回答 3

0

没有,document.getElementsById但是document.getElementById。这可能是您问题的根源。

于 2012-09-12T17:23:14.533 回答
0

我认为没有任何document.getElementsById功能。应该是document.getElementById

于 2012-09-12T17:23:29.020 回答
-1

“要设置或获取 input 或 textarea 元素的文本值,请使用 .val() 方法。”

查看 jquery 站点... http://api.jquery.com/val/

于 2012-09-12T17:27:20.600 回答