如何将元素ID传递给函数的参数? HTML / JS

时间:2017-04-12 17:48:12

标签: javascript html

function ValueLimit(min, max, mode){

        var v;
        if(mode === "h"){
            v = document.getElementById("weight_imp").value;

            if(v < min){document.getElementById("weight_imp").value = min;}
            if(v > max){document.getElementById("weight_imp").value = max;}
        }

        if(mode === "w"){
            v = document.getElementById("weight_imp").value;

            if(v < min){document.getElementById("weight_imp").value = min;}
            if(v > max){document.getElementById("weight_imp").value = max;}
        }
    }

我需要用输入元素的ID替换mode 这反过来会使代码显着缩小 我似乎找不到通过它的方法 它应该能够定位页面上的任何元素

1 个答案:

答案 0 :(得分:2)

我建议你将函数传递给一个实际的元素而不是一个选择器(它的附加好处是不要求每个input都有一个id)。您还可以使用Math.minMath.max来缩短实施时间。

function clampValue (e, min, max){
  e.value = Math.min(max, Math.max(min, +e.value))
}

var input = document.getElementById('weight_imp')

function exampleUsage () {
  clampValue(input, 0, 100)
}
<input type="number" id="weight_imp">
<button onclick="exampleUsage()">Clamp [0, 100]</button>