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>
注意点:传参时,参数要加引号。