为什么javascript会覆盖Html代码

时间:2011-08-17 03:16:06

标签: javascript

我刚刚开始学习javascript,我的问题是关于javascript的基本问题,但我必须学习它背后的逻辑。

   <p id="demo">This is a paragraph.</p>

  <script type="text/javascript">
   document.getElementById("demo").innerHTML=Date();
  </script>

使用这些代码,只有日期出现在浏览器上,浏览器忽略“这是一个段落”。不应该先浏览器首先写“这是一个段落”并在该显示日期下面?在同一个类中意味着,javacript会覆盖每个同一类的标签? 感谢

4 个答案:

答案 0 :(得分:4)

innerHTML 使用您指定的任何内容替换任何HTML。如果你想追加,你需要先抓住那里的东西。像这样:

var myTag = document.getElementById("demo");
myTag.innerHTML = myTag.innerHTML + Date();

答案 1 :(得分:1)

元素的innerHTML属性表示其全部内容。为其分配新值时,将替换整个内容。听起来您希望使用+=代替=,以便附加到现有字符串而不是替换它。

答案 2 :(得分:1)

innerHTML将传入它的元素内的文本替换为传递给它的内容,因此“This a paragraph”将替换为date的值。

请改为尝试:

document.getElementById("demo").innerHTML = 
  document.getElementById("demo").innerHTML + Date();

答案 3 :(得分:0)

  

浏览器不应先写“这是一个段落”并在该显示日期下面吗?

似乎你想换行,然后是日期。

这样做可以在不破坏现有内容的情况下实现这一目标:

var demo = document.getElementById("demo");

demo.appendChild( document.createElement( 'br' ) );
demo.appendChild( document.createTextNode( Date() ) );