我刚刚开始学习javascript,我的问题是关于javascript的基本问题,但我必须学习它背后的逻辑。
<p id="demo">This is a paragraph.</p>
<script type="text/javascript">
document.getElementById("demo").innerHTML=Date();
</script>
使用这些代码,只有日期出现在浏览器上,浏览器忽略“这是一个段落”。不应该先浏览器首先写“这是一个段落”并在该显示日期下面?在同一个类中意味着,javacript会覆盖每个同一类的标签? 感谢
答案 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() ) );