你聲明你的變量既是函數參數,也是函數本身。此外,您在變量聲明中以及指向變量時都指向「值」。
這會導致問題。
如果我理解正確的話你正在嘗試做的,你應該刪除函數變量聲明(X,Y),並指向「價值」只有一次:
function myFunction() {
var element1 = document.getElementById("age"); // removed value here
var element2 = document.getElementById("level"); // removed value here
if (element2.value <= 20) {
element1.value = 1;
}
else if(element2.value <= 40) {
element1.value = 2;
}
else {
element1.value = 3;
}
}
在這種情況下,你的變量真的是「常數」。您希望每次都指向相同的html元素。在這種情況下,你只需聲明一個變量,就像你已經在做的那樣,在你需要的任何地方(只要它們在scope)
你爲什麼要把它們放在函數參數中的一個原因是當你想讓你的函數「動態」行爲並且可重用。像這樣
function myFunction(elementIdToCheck, elementIdToSelect) {
var elementToCheck = document.getElementById(elementIdToCheck);
var elementToSet = document.getElementById(elementIdToSelect);
if (elementToCheck.value <= 20) {
elementToSet.value = 1;
}
else if(elementToCheck.value <= 40) {
elementToSet.value = 2;
}
else {
elementToSet.value = 3;
}
}
myFunction("age", "level");