亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

求幫忙看一下代碼,實在不知道為什么運行不對

<!DOCTYPE?html>
<html>
<head?lang="en">
????<meta?charset="UTF-8">
????<title>計算器</title>
????<script?type="text/javascript">
????????var?a?=?parseInt(document.getElementById("t1").value);
????????var?b?=?parseInt(document.getElementById("t2").value);
????????function?count(){
????????????var?ret;
????????????switch(?document.getElementById("select").value){
????????????????case"+":ret=a+b;break;
????????????????case"-":ret=a-b;break;
????????????????case"*":ret=a*b;break;
????????????????case"/":ret=a/b;break;
????????????}
????????????document.getElementById("t3").value=ret;
????????}
????</script>
</head>
<body>
????<form>
????????<input?type="text"?id="t1">
????????<select?id="select">
????????????<option?value="+">+</option>
????????????<option?value="-">-</option>
????????????<option?value="*">*</option>
????????????<option?value="/">/</option>
????????</select>
????????<input?type="text"?id="t2">
????????<input?type="button"?value="="?onclick="count()">
????????<input?type="text"?id="t3">
????</form>
</body>
</html>


正在回答

3 回答

你把a和b的獲取定義在<script type="text/js"></script>里面表示沒加載頁面之前就開始獲取t1與t2的值,所以獲取的結果肯定是空的,因為頁面沒加載完,你肯定還沒輸入這兩個數字呢,你可以在你這個有錯誤的代碼var a和var b 的后面分別加上alert(a);alert(b);即

var?a?=?parseInt(document.getElementById("t1").value); ? alert(a);

????????var?b?=?parseInt(document.getElementById("t2").value); alert(b);其彈出來的都是空值。調試下就可以知道了

所以只要把a和b的獲取定義在函數里面就可以 ?其更改的結果為:

function count(){

? ? ? ? ? ? var a = parseInt(document.getElementById("t1").value);

? ? ? ? ? ? var b = parseInt(document.getElementById("t2").value);


? ? ? ? ? ? var ret;

? ? ? ? ? ? switch(document.getElementById("select").value){

? ? ? ? ? ? ? ? case"+":ret=a+b;break;

? ? ? ? ? ? ? ? case"-":ret=a-b;break;

? ? ? ? ? ? ? ? case"*":ret=a*b;break;

? ? ? ? ? ? ? ? case"/":ret=a/b;break;

? ? ? ? ? ? }

? ? ? ? ? ? document.getElementById("t3").value=ret;

? ? ? ? }

看了一下其實你可以在t3的標簽里加入onfocus="count()"事件,這樣你直接點擊最后一個文本框就可以得到答案,不需要非要按下等于按鈕

<!DOCTYPE html>

<html>

<head>

? ? <meta charset="UTF-8">

? ? <title>計算器</title>

? ? <script type="text/javascript">

? ? ? ?

? ? ? ? function count(){

? ? ? ? ? ? var a = parseInt(document.getElementById("t1").value);

? ? ? ? ? ? var b = parseInt(document.getElementById("t2").value);


? ? ? ? ? ? var ret;

? ? ? ? ? ? switch(document.getElementById("select").value){

? ? ? ? ? ? ? ? case"+":ret=a+b;break;

? ? ? ? ? ? ? ? case"-":ret=a-b;break;

? ? ? ? ? ? ? ? case"*":ret=a*b;break;

? ? ? ? ? ? ? ? case"/":ret=a/b;break;

? ? ? ? ? ? }

? ? ? ? ? ? document.getElementById("t3").value=ret;

? ? ? ? }

? ? </script>

</head>

<body>

? ? <form>

? ? ? ? <input type="text" id="t1">

? ? ? ? <select id="select">

? ? ? ? ? ? <option value="+">+</option>

? ? ? ? ? ? <option value="-">-</option>

? ? ? ? ? ? <option value="*">*</option>

? ? ? ? ? ? <option value="/">/</option>

? ? ? ? </select>

? ? ? ? <input type="text" id="t2">

? ? ? ? <input type="button" value="=" onclick="count()">

? ? ? ? <input type="text" id="t3">

? ? </form>

</body>

</html>

你可以參考下,希望我的解釋能幫助到你。

1 回復 有任何疑惑可以回復我~
#1

素本往后 提問者

謝謝!看來我對代碼的執行順序理解得還很不好。我發現當var a,b在函數外面時,alert()也不執行了,不會彈出,這是什么原因呢?按理說,沒有獲取到會彈出null?
2016-12-01 回復 有任何疑惑可以回復我~
#2

手機用戶3146674384 回復 素本往后 提問者

能把源碼發過來嗎 我直接在后面加alert是有的 你確定你的標點符號也是英文狀態下的嘛
2016-12-01 回復 有任何疑惑可以回復我~
#3

素本往后 提問者 回復 手機用戶3146674384

var a = parseInt(document.getElementById("t1").value); alert(a); var b = parseInt(document.getElementById("t2").value); alert(b); function count(){
2016-12-01 回復 有任何疑惑可以回復我~
#4

素本往后 提問者 回復 手機用戶3146674384

就是按照你說的,在我有錯誤的代碼var a和var b 的后面分別加上alert(a);alert(b);
2016-12-01 回復 有任何疑惑可以回復我~
查看1條回復

<!DOCTYPE html>

<html>

<head>

? ? <meta charset="UTF-8">

? ? <title>計算器</title>

? ? <script type="text/javascript">

? ? ? ?

? ? ? ? function count(){

? ? ? ? ? ? var a = parseInt(document.getElementById("t1").value);//寫在函數里面,頁面加載完,調用函數的時候才獲取t1的值

? ? ? ? ? ? var b = parseInt(document.getElementById("t2").value);//寫在函數里面,頁面加載完,調用函數的時候才獲取t2的值


? ? ? ? ? ? var ret;

? ? ? ? ? ? switch(document.getElementById("select").value){

? ? ? ? ? ? ? ? case"+":ret=a+b;break;

? ? ? ? ? ? ? ? case"-":ret=a-b;break;

? ? ? ? ? ? ? ? case"*":ret=a*b;break;

? ? ? ? ? ? ? ? case"/":ret=a/b;break;

? ? ? ? ? ? }

? ? ? ? ? ? document.getElementById("t3").value=ret;

? ? ? ? }

? ? </script>

</head>

<body>

? ? <form>

? ? ? ? <input type="text" id="t1">

? ? ? ? <select id="select">

? ? ? ? ? ? <option value="+">+</option>

? ? ? ? ? ? <option value="-">-</option>

? ? ? ? ? ? <option value="*">*</option>

? ? ? ? ? ? <option value="/">/</option>

? ? ? ? </select>

? ? ? ? <input type="text" id="t2">

? ? ? ? <input type="button" value="=" onclick="count()">

? ? ? ? <input type="text" id="t3" ?onfocus="count()">//這里加個onfocus事件(個人建議)

? ? </form>

</body>

</html>


0 回復 有任何疑惑可以回復我~

<script?type="text/javascript">

? ? ??

????????function?count(){

????????????var?ret;

?var?a?=?parseInt(document.getElementById("t1").value);

????????var?b?=?parseInt(document.getElementById("t2").value);

????????????switch(?document.getElementById("select").value){

????????????????case"+":ret=a+b;break;

????????????????case"-":ret=a-b;break;

????????????????case"*":ret=a*b;break;

????????????????case"/":ret=a/b;break;

????????????}

????????????document.getElementById("t3").value=ret;

????????}

????</script>


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

求幫忙看一下代碼,實在不知道為什么運行不對

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號