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

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

為什么輸出Nan

<!DOCTYPE html>

<html>

?<head>

? <title> 事件</title> ?

? <script type="text/javascript">

??

? ? ? ?

? ? //獲取第一個輸入框的值

? ? var a=document.getElementById("txt1");

? ? a=a-0;

//獲取第二個輸入框的值

? ? var b=document.getElementById("txt2");

? ? b=b-0;

//獲取選擇框的值

? ? var o=document.getElementById("select")

//獲取通過下拉框來選擇的值來改變加減乘除的運算法則

? ? function david(a,b){

? ? ? ? if(o=='+'){

? ? ? ? ? ? var n=a+b;

? ? ? ? }else if(o=='-'){

? ? ? ? ? ? var n=a-b;

? ? ? ? }else if(o=='*'){

? ? ? ? ? ? var n=a*b;

? ? ? ? }else if(o=='/'){

? ? ? ? ? ? var n=a/b;

? ? ? ? }

? ??

? ??

? ? //設置結果輸入框的值?

? ? n=n-0;

? ? document.getElementById('fruit').value=n;

? ? }

? ?

? </script>?

?</head>?

?<body>

? ?<input type='text' id='txt1' />?

? ?<select id='select'>

<option value='+'>+</option>

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

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

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

? ?</select>

? ?<input type='text' id='txt2' />?

? ?<input type='button' value=' = ' onclick='david()'/> <!--通過 = 按鈕來調用創建的函數,得到結果-->?

? ?<input type='text' id='fruit'/> ??

?</body>

</html>


正在回答

6 回答

var o=document.getElementById("select") 這一行等到的值是object, ?應該寫成.

var o=document.getElementById("select").value 這樣得到的值才是實際的值.

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

SparkParis

沒有獲得value的值,沒有進行字符串和整型的之間的轉化
2016-11-08 回復 有任何疑惑可以回復我~

<html>

?<head>

?

?<script type='text/javascript'>

? function count(){

var a=t1.value; ?

? var b=t2.value;

var sele=se.value;

var n;

switch(sele){

case '+':

n=eval(a)+eval(b);

break;

case '-':

n=eval(a-b);

break;

case '*':

n=eval(a*b);

break;

case '/':

n=eval(a/b);

}

alert(n);

? }?

? </script>

??

?</head>

?

?

?

?<body>

?

? <input type='text' id='t1'/>

? <select id='se'>

? <option>+</option>

? <option>-</option>

? <option>*</option>

? <option>/</option>

? ? </select>

? ? <input type='text' id='t2'/>

? ? <button type='button' onclick='count()'>result</button>

?</body>

</html>


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

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

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

要放到count()函數內,放在外面就是頁面加載的時候獲取,當然是undefined,放在函數內,則點擊后再獲?。?/p>

b也要加上parseInt(),數字相加才不會出問題


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


<html>

?<head>

?

?<script type='text/javascript'>

?//

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

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


? function count(a,b){

? //var n=a+b;

? document.write(a);

? document.write(b);

? }

?

? </script>

??

?</head>

?

?

?

?<body>

?

? <input type='text' id='t1'/>

? <select id='se'>

? <option>add</option>

? <option>minus</option>

? <option>mutiply</option>

? <option>divide</option>

? ? </select>

? ? <input type='text' id='t2'/>

? ? <button type='button' onclick='count()'>result</button>

?</body>

</html>


這個里面輸出結果是兩個undefined,所以會出現nan,但是為什么undefined?


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

A空城

#t1是輸入值1,#t2是輸入值2,那用來顯示結果的標簽元素呢? 不給標簽元素也可以 但你要以彈窗的方式彈出結果呀
2016-11-09 回復 有任何疑惑可以回復我~

var?a=document.getElemntById('t1').value;

???var?b=document.getElemntById('t2').value;

?改為

var?a= parseInt(document.getElemntById('t1').value;)

???var?b=parseInt(document.getElemntById('t2').value;)

試試?

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

瀅芷 提問者

還是不行
2016-11-08 回復 有任何疑惑可以回復我~
<html>
?<head>
?
?<script?type='text/javascript'>
?//
?	var?a=document.getElemntById('t1').value;
?	var?b=document.getElemntById('t2').value;

?	function?count(a,b){
?		var?n=a+b;
?		document.write(n);
?	}
?	
?	</script>
??
?</head>
?
?
?
?<body>
?	
?	<input?type='text'?id='t1'/>
?	<select?id='se'>
?		<option>add</option>
?		<option>minus</option>
?		<option>mutiply</option>
?		<option>divide</option>
????</select>
????<input?type='text'?id='t2'/>
????<button?type='button'?onclick='count()'>result</button>
?</body>
</html>

這樣也是nan

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

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468830    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

為什么輸出Nan

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

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

幫助反饋 APP下載

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

公眾號

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