js函數傳參是重要的方法。有一種情況比較特殊,當傳遞的參數是id時該怎麼去具體的使用呢?
沒有傳參的時候我們的函數一般都是這樣
<script>
function myfunction(){
var x=100;
document.getElementById("id1").innerHTML=x;
}
</script>
用法很簡單,只要在需要的地方寫上id="id1"就好了。
當函數傳參是id是,怎樣去調用呢?函數體中的document該怎麼樣去寫呢?這裏給一個我在公司實際編程的例子:
有兩個輸入框,通過輸入的值相除算出百分比,將百分比顯示再伸縮框的標題右側,同時根據算出的百分比去改變輸入框的顏色和伸縮框的顏色去提醒用戶是否輸入正確。像這樣的表單有很多個,所以需要一個萬金油函數讓所有類似的表單都可以去調用,根據傳入的參數id的不同去修改不同位置的表單。
函數的寫法:
<script>
function showper(UA, TR, IT, SP, P) {
var UV = document.getElementById("UE value").innerText; //UE Value
var UA = document.getElementById(UA).value; //UE amount
var UP = (UA / UV) * 100; //UE percent
if (isNaN(UA)) {
alert("Please enter a positive integer.");
return false;
}
if (parseInt(UA) > UV) {
document.getElementById(TR).className = "warning";
document.getElementById(IT).className = "panel panel-warning";
document.getElementById(SP).className = "fa fa-times";
document.getElementById(SP).innerHTML = "UE amount is over the range.";
} else {
document.getElementById(TR).className = "default";
document.getElementById(IT).className = "panel panel-info";
document.getElementById(SP).className = null;
document.getElementById(SP).innerHTML = null;
}
document.getElementById(P).innerHTML = "Percentage:" + UP.toFixed(2) + "%"+ "Amount: " + UA;
}
</script>
注意的點:1.函數的參數不加任何引號。2.用參數的getElementById(UA),這裏參數不是具體的id所以不加引號。
函數的調用(裏面的id已經在具體的地方聲明過):
<td><input type="text" id="UE amount1" οnkeyup="showper('UE amount1','tr1','it1','sp1','p1');showall()" /> <span id="sp1"></span></td>
注意點:傳參時,參數要加引號。