问下,我用<div>模拟了一个计算器,大概代码如下:<script language="javascript">var
a=0;
b=0;
c=0;
c=parseInt(a)+parseInt(b);</script><div value="7"   id="key_n7" onclick="javascript:alert(a=this.value)">7</div>
<div value="8"  id="key_n8"  onclick="javascript:alert(b=this.value)">8</div>
<div value="="  id="key_n9"  onclick="alert(c)">=</div>

我想实现的效果是鼠标点一下7,再点一下8,最后点=,就会得出结果,可是不知什么原因,a+b的值就是代不到c里边去,弹出的结果还是0.  如果这样写alert(parseInt(a)+parseInt(b)),结果就是15,为什么,括号里换成C以后就是0了,求助......谢谢了.

解决方案 »

  1.   


    我感觉页面应该是由上往下执行的
    Js上面C等于0了,然后下面你给a,b赋值对C也没有影响吧!
      

  2.   

    把JS代码段移到</body>后面试一试!
      

  3.   

    啊?1楼的美女说的啥意思,我杂听不明白呢?给a b赋值是对c是没有什么影响啊? 可是按道理来说c=a+b这样应该是有影响的呀
      

  4.   

    2楼帅哥,如果移到</body>后边的话,网页会报错提示"对象不支持此属性或方法"
      

  5.   

    alert(parseInt(a)+parseInt(b)),结果就是15
    Lz说实话连你这句话我都怀疑正确与否!!!
      

  6.   


    请问Lz单击7,8的时候是什么情况?
    LZ单击<div value="=" id="key_n9" onclick="alert(c)">=</div>
    出来的是0
    然后换成alert(parseInt(a)+parseInt(b)),结果又是什么?
      

  7.   

    <div value="7" id="key_n7" onclick="javascript:alert(a=this.innerHTML)">7</div>
    <div value="8" id="key_n8" onclick="javascript:alert(b=this.innerHTML)">8</div>
    <div value="=" id="key_n9" onclick="alert(c)">=</div><script language="javascript">
    a=document.getElementById("key_n7").innerHTML;
    b=document.getElementById("key_n8").innerHTML;
    c=parseInt(a)+parseInt(b);
    </script>这回你再试一试 呵呵 
      

  8.   

    dom 的 div 不用value 要用innerHTML的 呵呵
      

  9.   


    晕,单击一下7 <this.value>,就会截取7并放到变量a中,单击一下8 <this.value>,就会截取8并放到变量b中,输出alert(a+b),结果是78,如果输出alert(parseInt(a)+parseInt(b)),会强制转换成整型,然后相加结果是15,现在的问题是,为什么a+b或者parseInt(a)+parseInt(b) 无法代到变量c中....应该怎么代
      

  10.   


    这些都只是LZ想的而已,Lz可否试过???
      

  11.   

    老兄啊 你什么浏览器啊 我这个怎么就都能成功
    I 服了 YOU
      

  12.   


    是不是要把value换成innerHTML? 可是我们老师,现在只教给了我们value var i++ parseInt这三个东西,别的都没教呢,他说可以做出那种效果.我都想了一天了,现在只是实现了alert(parseInt(a)+parseInt(b)这个效果              alert(c),这个效果还弄不出来
      

  13.   

    js是页面加载就已经完成的,你应该定义一个js方法当点击=的时候调用该方法为c赋值,同时你还需要考虑变量作用域的问题最好将c设置成全局的.
      

  14.   


    对对,大哥分析的很好,可是什么方法给C赋值呢,我才刚学JS,1天,不知道应该怎么弄,能不能说一下~
      

  15.   

    c=parseInt(a)+parseInt(b);
    这一句应该放到方法里。
    你点等号的时候执行方法。javascript:
    function sum(a,b){
        c=parseInt(a)+parseInt(b);
        alert(c);
    }
    html:
    <div value="=" id="key_n9" onclick="sum(a,b)">=</div>
      

  16.   

    谢谢各位,已经解决了,我的方法是这样的:
    <script language="javascript">var
    a=0;
    b=0;
    c=0;
    function result(value){
    c=parseInt(a)+parseInt(b);
    alert(c);
    }
    </script><div value="7" id="key_n7" onclick="javascript:alert(a=this.value)">7</div>
    <div value="8" id="key_n8" onclick="javascript:alert(b=this.value)">8</div>
    <div value="=" id="key_n9" onclick="result(value)">=</div>