日期:2014-05-18  浏览次数:20478 次

为什么同样是document.write()却出现两个结果??初学JS,请高人帮助解答一下。100分,100分,100分,你必须说明白才给你
<html>
<head>
<script>
function addText()
{
document.write("<div style=background-color:#CCCCCC;>这是后追加的文字</div>");
}
</script>
</head>
<body>
<div id="d1">层一</div><br><div id="d2">层二</div>
<button id="bt" onclick="addText();">按钮[向页面追加文字]</button>
<script>
addText();
</script>
</body>
</html>

就是上面的代码,当网页加载时,会出现两个层与用document.write输出的文字,但是当你点击按钮时,就会出现只有document.write输出的文字,两个层和按钮都没有了???同样都是引用那个方法,并且也都是document.write,怎么不一样呢??请高手说明些,我初学,谢谢了


----------------------------------------------------
随便问一下高手,以下代码为什么不好使呢??
<html>
<head>
<script>
function JSClass()
  {
  var myName = 'jsclass';
  this.m_Name = 'JSClass';
  }

  JSClass.prototype.ToString = function()
  {
  alert(myName + ', ' + this.m_Name);
  };

  var jc = new JSClass();
  jc.ToString();
</script>
</head>
<body>

</body>
</html>
这是从网上学习时看到的,是不是javascript不支持class啊??还是什么??请您给说一下。   对了,第一个问题是主要问题,请先答那个,给分时,也是根据那个给的。谢谢大家了

------解决方案--------------------
前一个是在页面加载的时候write的,它会接着前面的内容,当页面加载完后再document.write会覆盖原来页面的内容,所以当文档流结束以后就不能再write了
可以试下这个,先随便开个网页,然后在浏览器地址栏输入
javascript:document.writeln('123');;alert('456');document.close();
看效果。。
------解决方案--------------------
第二个问题.
可以改为两种写法

HTML code

<html > 
<head > 
<script > 
function JSClass()
{
    this.myName='sclass';  //因为js类的域或者字段不需要var
    this.m_Name='JSClass';
}
JSClass.prototype.ToString = function() 
{ 
    alert(this.myName +  ',  ' + this.m_Name); 
}; 

var jc = new JSClass(); 
jc.ToString(); 

</script > 
</head > 
<body > 

</body > 
</html >