老师能帮我看下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

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下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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