請問為什么在賦值給一個節(jié)點(diǎn)的value屬性時,不能先用一個變量裝,而只能直接賦值?(請看注釋)
<!DOCTYPE html>
<html>
?<head>
? <title> 事件</title> ?
? <script type="text/javascript">
?? function count(){
????? ?
var num1=parseInt(document.getElementById("txt1").value);
var num2=parseInt(document.getElementById("txt2").value);
var counting=document.getElementById("select").value;
var result;
switch(counting){
??? case "+":
??? result=num1+num2;
??? break;
??? case "-":
??? result=num1-num2;
??? break;
??? case "*":
??? result=num1*num2;
??? break;
??? case "/":
??? result=num1/num2;
}
document.getElementById("fruit").value=parseInt(result);
/*這里改為:
var final1=document.getElementById("fruit").value;
final1=parseInt(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()"/> <!--通過 = 按鈕來調(diào)用創(chuàng)建的函數(shù),得到結(jié)果-->
?? <input type='text' id='fruit'? onfocus="count()"/>? ?
?</body>
</html>
2016-03-23
(1)var final1=document.getElementById("fruit").value;
(2)final1=parseInt(result);
為了敘述簡便,設(shè)final為A,document.getElementById("fruit")為B,parseInt(result)為C;
簡化如下:
(1)A=B.value;
(2)A=C;
可以看的出。整個過程中。只是A被兩次附值。B并沒有改變。
A和B是兩個對象,value只是B的一個屬性,你要改變B的屬性值value,需要獲得的是B這個對象。
所以你應(yīng)該這樣寫:
(1)var final1=document.getElementById("fruit");
(2)final1.value=parseInt(result);
這樣就可以了。
2016-03-23
使用parseInt()函數(shù)可解析一個字符串,并返回一個整數(shù).
你這樣的結(jié)果是先給final1賦值了id.value,再給final1 賦值了result,并沒有讓 id"fruit"里面的value改變,
2016-03-23
/*這里改為:
var final1=document.getElementById("fruit").value;
final1=parseInt(result);
這樣就失效了 為什么呢?*/
等同于:
var final1;
final1 = document.getElementById("fruit").value; //final1和fruit.value的值都為空值,這句沒有意義。
final1 = parseInt(result); //final1為計(jì)算結(jié)果。
只需添加一句就可以輸出結(jié)果了。
document.getElementById("fruit").value=final1; //這樣就可以在名為fruit的文本中顯示了。
2016-03-23
這種感覺比較像是:
var sourceValue = 3;????????// 把這個看做document.getElementById("fruit").value;
var result = sourceValue;????// 將sourceValue的值賦值給result
result = 5;????????// 最后再把result的值改變 不會對原有的sourceValue產(chǎn)生任何影響
2016-03-23
var final1=document.getElementById("fruit").value;
final1=parseInt(result);
你這兩句代碼的意思是把document.getElementById("fruit").value賦值給final1
但是題的意思是將最后的值傳給id為fruit"的文本框
應(yīng)該改成:
var final1=parseInt(result);
document.getElementById("fruit").value=final1;
2016-03-23
1:定義num1和num2的時候進(jìn)行一次parseInt()就足夠了,為什么最后將result賦給fruit的時候又進(jìn)行了一次呢?
2:final1失效是因?yàn)閒inal1是空值。