關于獲取元素ID的各種問題和他的運算順序。。。。大神們幫幫忙?。?!
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>style樣式</title>
<script type="text/javascript">
var numresult;
var str;
function onclicknum(nums) {
?? str = document.getElementById("nummessege");
?? str.value = str.value + nums;
}
</script>
</head>
<body>
<input type="text" id="nummessege" />
<input type="button" value="4" id="4" onclick="onclicknum(4)">
</body>
</html>
這段代碼到底是怎么運算的,他的運算順序是怎么回事?
2016-03-20
<input type="button"?onclick="onclicknum(4)">按鈕綁定了click事件 ,并添加了事件處理函數onclicknum。當單擊按鈕時,調用onclicknum函數,同時傳遞了一個參數4給onclicknum函數,它里面的nums變量就被賦值為4
函數里面?document.getElementById("nummessege"),它獲取到<input id="nummessege"/>,由于它沒有value, 所以str.value得到的是空字符串。
str.value = str.value + nums,等號是賦值運算符,運算優先級最低,所以先算右邊?str.value + nums,它實際是
''(空字符串)+4,結果是'4',然后賦值給左邊str.value 那么<input id="nummessege"/>文本框中顯示4。
當再點擊時,4又傳給了onclicknum函數,這時里面str.value=4, 那么‘4’+4=44.文本框中顯示44。
這里有兩點需要注意:
????1, input?文本框返回值是一個字符串,雖然你輸入數字4到文本框中,但它返回字符串'4',str.value ='4'
????2, +?優先做字符串連接。'4'+4 = '44'
如果做算術加,一般用parseInt 或parseFloat函數,顯示把字符串轉換為數字,str.value =parseInt(str.value) + nums; 但這是有一個問題,<input type="text" id="nummessege" /> 最開始沒有value, 是空字符串,當進行第一次計算,parseInt('') 返回NaN, 以后無法進行計算了。
由于這里只是4這一個數字的相加,所有用Number 進行顯示轉換就可以了。str.value =Number(str.value) + nums; ?這時文本框時就顯示4, 8, 12等。
2016-03-19
先是定義參數,inpurt定義一個nummessgee,input將獲取的參數值4傳送給document.getelemetbyid,點擊按鈕時onclicknoum復制輸入剛才的值,大概是這樣吧
2016-03-19
單擊事件發生時傳遞參數4給函數onclicknum(),并改變文本框對象的值