老师能帮我看下js的问题吗,没法实现

老师能帮我看下js的问题吗,没法实现

function init(){

var num=document.getElementById('num');

num.value=0;

var oButton=document.getElementsByTagName('input');

var b1;

for(var i=0;i<oButton.length;i++){

oButton[i].onclick=function(){

if(isNumber(this.value)){

num.value=(num.value+this.value)*1;

}

else{

var b=this.value;

switch(b){

case"+":

b1=Number(num.value);

num.value=0;

fh="+";

break;

case"-":

b1=Number(num.value);

num.value=0;

fh="-";

break;

case"*":

b1=Number(num.value);

num.value=0;

fh="*";

break;

case"/":

b1=Number(num.value);

num.value=0;

fh="/";

break;

case"=":

switch(fh){

case"+":

num.value=(b1+num.value)*1;

break;

case"-":

num.value=(b1-num.value)*1;

break;

case"*":

num.value=(b1*num.value)*1;

break;

case"/":

if(Number(num.value)==0){

num.value="錯誤";

}

else{

num.value=(b1/num.value)*1;

break;

   }

break;

   case"del":

   alert("1");

   break;

   case"c":

   num.value=0;

   break;

   case".":

   num.value=dNumber(num.value);

   break;

   case"+/-":

   num.value=sign(num.value);

   break;

}

}

}

}

}

}

function isNumber(n){

return !isNaN(n);

}

function back(n){

    n=n.substr(0,n.length-1);

    if(isNull(n)){

    n=0;

    }

    return n;

}

function isNull(n){

if(n==0||n.length==0){

return true;

}

else{

return false;

}

}

function dNumber(n){

if(n.indexOf(".")==-1){

n=n+".";

}

    return n;

}

function sign(n){

n=Number(n)*(-1);

return n;

}

function ff(){

a=document.getElementById("a");

a.onclick=function(){

window.location.href="https://www.youtube.com/"

}

}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小尤 2021-01-23 14:57:47

同学你好,1、同学是无法完成计算吗?如果是,则在JavaScript中加号(+),不只可以计算,也可以进行字符串拼接。而在加减乘除中接收到的参数是字符串,所以进行拼接。则建议同学调用Number()方法。如下图所示:

http://img1.sycdn.imooc.com//climg/600bc8d30952775c06260444.jpg

2、无法点击del、c、.、+/-键,则建议在case"=":switch(fh){}外添加一个break;,然后将del、c、.、+/-放置到等于号的外面。如下图所示:

http://img1.sycdn.imooc.com//climg/600bc97f09666f3c07570721.jpg

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
function init(){
    var num=document.getElementById('num');
    num.value=0;
    var oButton=document.getElementsByTagName('input');
    var b1;
    for(var i=0;i<oButton.length;i++){
        oButton[i].onclick=function(){
            if(isNumber(this.value)){
                num.value=(num.value+this.value)*1;
            }else{
                var b=this.value;
                switch(b){
                    case"+":
                        b1=Number(num.value);
                        num.value=0;
                        fh="+";
                    break;
                    case"-":
                        b1=Number(num.value);
                        num.value=0;
                        fh="-";
                    break;
                    case"*":
                        b1=Number(num.value);
                        num.value=0;
                        fh="*";
                    break;
                    case"/":
                        b1=Number(num.value);
                        num.value=0;
                        fh="/";
                    break;
                    case"=":
                        switch(fh){
                            case"+":
                                num.value=(b1+Number(num.value))*1;
                            break;
                            case"-":
                                num.value=(b1-Number(num.value))*1;
                            break;
                            case"*":
                                num.value=(b1*Number(num.value))*1;
                            break;
                            case"/":
                                if(Number(num.value)==0){
                                    num.value="錯誤";
                                }else{
                                    num.value=(b1/Number(num.value))*1;
                                    break;
                               }
                            break;
                        }
                    break;
                    case"del":
                             alert("1");
                    break;
                    case"c":
                         num.value=0;
                    break;
                    case".":
                        num.value=dNumber(num.value);
                    break;
                    case"+/-":
                        num.value=sign(num.value);
                    break;
 
                }
 
            }
 
        }
 
    }
 
}

如果都不是,则建议同学具体描述一下问题,便于老师定位问题。

祝学习愉快!

  • 提问者 空飞1170368 #1

    谢谢老师,前面两个问题解决了,还有一个问题就是那个按m键,没反应,能帮我看下吗。这是m键的代码:



    function ff(){

    a=document.getElementById("a");

    a.onclick=function(){

    alert("1");

    }

    }


    2021-01-23 15:28:02
  • 好帮手慕小尤 回复 提问者 空飞1170368 #2

    同学你好,测试代码是可以实现,则建议同学查看在html文件是否有加载ff()方法。如下图所示:

    http://img1.sycdn.imooc.com//climg/600be8bc09e8d8dd07290567.jpg

    如果还存在问题,则建议同学反馈html中代码,便于老师定位问题。

    祝学习愉快!

    2021-01-23 17:14:22
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码