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

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

var txta=...不寫在函數代碼{}里面,最后document.get...也不寫在函數代碼{}里面

<!DOCTYPE html>

<html>

?<head>

? <title> 事件</title>??

? <script type="text/javascript">

? ? var txta=document.getElementById("txt1").value;

? ? var txtb=document.getElementById("txt2").value;

? ? var txtc=document.getElementById("select").value;

? ? var result;

? ? function count(){

? ? ? ? switch(txtc){

? ? ? ? ? ? case "+":result=parseInt(txta)+parseInt(txtb);break;

? ? ? ? ? ? case "-":result=txta-txtb;break;

? ? ? ? ? ? case "*":result=txta*txtb;break;

? ? ? ? ? ? case "/":result=txta/txtb;break;

? ? ? ? ? ? }

? ?}

? ? document.getElementById("fruit").value=result;

? </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="count()"/> <!--通過 = 按鈕來調用創建的函數,得到結果-->?

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

?</body>

</html>

我知道開頭var txta=document.等等和結尾document.getElementById("fruit").value=result;這兩東西必須寫在函數代碼{}里才是對的,我想知道為什么這樣子它就錯了,觸犯了哪個原理?


正在回答

4 回答

寫在外面,沒點擊按鈕就運行函數之外的代碼,此時那些框框里沒有任何用戶輸入的數據,value為空,同理,result尚未被賦值。

靠網友是不行的,還是得自己摸索。

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

我大概知道原因了,是不是瀏覽器是按照先后順序執行代碼的,函數里的代碼需要點擊才能執行,那兩個東西在外面的話,早就被執行了

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

代碼的執行是有先后順序的,先執行script里面的(函數是調用時才執行),所以你寫在函數外面的部分會比body部分先執行,由于body部分還沒有執行,所以還沒有id為txt1的標簽,所以document.getElementById("txt1").value根本得不到,所以會錯誤。

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

寶慕林5689754 提問者

由于body部分還沒有執行,所以還沒有id為txt1的標簽,這句話不對吧,把script放在head里照樣能獲取body里的id吧
2019-08-27 回復 有任何疑惑可以回復我~
#2

寶慕林5689754 提問者

說錯了 的確是無法獲取,那我把上面的script放在</body>之前呢,這下是能獲取,但是函數依舊錯
2019-08-27 回復 有任何疑惑可以回復我~

寫在外面函數switch就沒辦法獲取到txt1 txt2 selec的值了,個人是這么理解的,初學者勿噴

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

胡歌一號迷弟

可以百度一下“document.getElementById寫在function外”,你就會知道原因
2019-08-27 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

var txta=...不寫在函數代碼{}里面,最后document.get...也不寫在函數代碼{}里面

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

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

幫助反饋 APP下載

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

公眾號

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