关于对象自面量json

yyx520aiy520 2011-10-08 03:36:49
如何用它我的代码 但是每次出错
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>MyHtml.html</title>

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=GB18030">

<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

<script type="text/javascript">


var temp ;

function recevie(val){
alert("hello");
temp = val;
}

var numberAdd={
firstNum:document.getElementById('firstNum').value,
secondNum:document.getElementById('secondNum').value,
result:document.getElementById('result')
//jia:parseInt(numberAdd.firstNum)+parseInt(numberAdd.secondNum),
//jian:parseInt(numberAdd.firstNum)-parseInt(numberAdd.secondNum),
//cheng:parseInt(numberAdd.firstNum)*parseInt(numberAdd.secondNum),
//chu:parseInt(numberAdd.firstNum)/parseInt(numberAdd.secondNum)
};

function jiSuan(){
alert(numberAdd.firstNum);
}

/*
function jiSuan(){
if(temp=="+"){

numberAdd.result.value =numberAdd.jia;
return;
}
if(temp=="-"){
numberAdd.result.value =numberAdd.jian;
//numberAdd.result.value = parseInt(numberAdd.firstNum)-parseInt(numberAdd.secondNum);
//return;
}
if(temp=="*"){
numberAdd.result.value =numberAdd.cheng;
//numberAdd.result.value = parseInt(numberAdd.firstNum)*parseInt(numberAdd.secondNum);
//return;
}
if(temp=="/"){
numberAdd.result.value =numberAdd.chu;
//numberAdd.result.value = parseInt(numberAdd.firstNum)/parseInt(numberAdd.secondNum);
//return;
}
}
*/
</script>

</head>

<body>

<input type="text" id="firstNum">
<select name="sel" id="sele" onChange="recevie(this.value);" >
<option>选择运算符</option>
<option value="+">+</option>
<option value="-" >-</option>
<option value="*" >*</option>
<option value="/">/</option>
</select>
<input type="text" id="secondNum"><input type="button" value="=" onclick="jiSuan();"><input type="text" readonly="readonly" id="result"><br/>


</body>
</html>
...全文
97 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
手写 2011-10-08
  • 打赏
  • 举报
回复
你可以尝试用命名空间来保持变量的安全性
用闭包的单例模式来进行方法封装
<html>
<head>
<script type="text/javascript">
var JsuanQi=new function(){
var slef=this;
this.getFirstNum=function(){return document.getElementById('firstNum').value;};
this.getSecondNum=function(){return document.getElementById('secondNum').value;};
this.getResult=function(){return document.getElementById('result').value;};
this.jia=function(){return parseInt(slef.getFirstNum())+parseInt(slef.getSecondNum());};
this.jian=function(){return parseInt(slef.getFirstNum())-parseInt(slef.getSecondNum());};
this.cheng=function(){return parseInt(slef.getFirstNum())*parseInt(slef.getSecondNum());};
this.chu=function(){return parseInt(slef.getFirstNum())/parseInt(slef.getSecondNum());};

this.jiSuan=function(){
var fu=document.getElementById('sele').value;
var ret="";
switch (fu){
case "+":{ret=slef.jia();break;}
case "-":{ret=slef.jian();break;}
case "*":{ret=slef.cheng();break;}
case "/":{ret=slef.chu();break;}
default:{ret="";break;}
}
document.getElementById('result').value =ret;
}
}
</script>
</head>
<body>
<input type="text" id="firstNum">
<select name="sel" id="sele" >
<option>选择运算符</option>
<option value="+">+</option>
<option value="-" >-</option>
<option value="*" >*</option>
<option value="/">/</option>
</select>
<input type="text" id="secondNum">
<input type="button" value="=" onclick="JsuanQi.jiSuan();">
<input type="text" readonly="readonly" id="result"><br/>
</body>
</html>
手写 2011-10-08
  • 打赏
  • 举报
回复
脚本是预加载编译
var numberAdd={
firstNum:document.getElementById('firstNum').value,
secondNum:document.getElementById('secondNum').value,
result:document.getElementById('result')
//jia:parseInt(numberAdd.firstNum)+parseInt(numberAdd.secondNum),
//jian:parseInt(numberAdd.firstNum)-parseInt(numberAdd.secondNum),
//cheng:parseInt(numberAdd.firstNum)*parseInt(numberAdd.secondNum),
//chu:parseInt(numberAdd.firstNum)/parseInt(numberAdd.secondNum)
};

你这一段,如何能找到document.getElementById('firstNum').value?
当你声明变量var numberAdd={
firstNum:xxx的时候,他是找不到document.getElementById('firstNum')的,因为他还没有加载进来
建议将这些代码放到body的最下面 或者进行window的load加载时运行
zell419 2011-10-08
  • 打赏
  • 举报
回复
只能这样写在外面了 。
numberAdd.firstNum = document.getElementById('firstNum').value;
liangws 2011-10-08
  • 打赏
  • 举报
回复
建议楼主先把其他贴结了吧。。

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧