<body>
<input type="text"  />
<select>
<option selected>+</option>
<option>-</option>
<option>*</option>
<option>/</option>
</select>
<input type="text" />
<div id="ss"></div>
<script>
var inp=document.getElementsByTagName("input");
var opt=document.getElementsByTagName("option");
var ss=document.getElementById("ss");
inp[1].onblur=function(){
for(var i=0;i<opt.length;i++)
if(opt[i].selected)var t=i;
var first=parseInt(inp[0].value);
var second=parseInt(inp[1].value);
switch(t){
case '-':document.write(first-second);
case '*':document.write(first*second);
case '/':document.write(first/second);
default:document.write("dd");
}
}
</script>
</body>奇怪的是在上例中document.write()方法会清理当前页面Html值,用document.write重新写一个Html页面晕啊我又测试一个代码<body>df<script>document.write("dd");</script></body>
输出结果为dfdd,并没有重写啊,这一会重写,一会又不重写
怎么回事啊

解决方案 »

  1.   

    你这个判断也有问题吧 ?
    document.getElementsByTagName("select")[0].value
    应该是他 。
      

  2.   

    如果要改变ss的内容 .
    也应该用document.getElementById("ss").innerHTML = result;
      

  3.   


    你理解错了,我没打算修改ss值,删了也行
    我的问题是docuemnt.write为什么有时候会创新新页面写值,有时候在原页面写值?你可以考虑到这段代码执行下(删除了ss,修改了switch default
    <body>
    <input type="text"  />
    <select>
    <option selected>+</option>
    <option>-</option>
    <option>*</option>
    <option>/</option>
    </select>
    <input type="text" />
    <script>
    var inp=document.getElementsByTagName("input");
    var opt=document.getElementsByTagName("option");
    inp[1].onblur=function(){
    for(var i=0;i<opt.length;i++)
    if(opt[i].selected)var t=i;
    var first=parseInt(inp[0].value);
    var second=parseInt(inp[1].value);
    switch(t){
    case '-':document.write(first-second);
    case '*':document.write(first*second);
    case '/':document.write(first/second);
    default:document.write(first+second);
    }
    }
    </script>
    </body>
      

  4.   

    你在方法中使用document.write()
    因为document.write()会生成一个文本流, 
    生成的这个文本流显示在页面上的时候,已经不是你以前的那个页面了,必然会刷新 。
    你可以考虑innnerHTML 改变div 。
      

  5.   


    明白了,谢谢你拉,高手,分给你
    innerHTML我会呵呵
    如果有时间帮我解决下这个问题,昨天在csdn问了,没人回答
    http://topic.csdn.net/u/20110618/21/3307942b-a2ba-48c7-a298-82c1d5792eaa.html?20894