在Java语言中,我在函数中声明了var x
和var y
:
var x = document.getElementById("x").value;
var y = document.getElementById("y").value;
之所以这样做,是因为我需要多次使用document.getElementById
。
在此功能中,我还有一个开关盒。
在所有情况下,我都需要使用var x
和var y
。
我得到警告,var x
和var y
永远不会被读取。
我之前使用过if-Statement,但我认为在这种情况下使用切换用例会更好。
当我使用document.getElementById("x").value
代替var x
时可以使用,但是我不想在10种情况下致电document.getElementById
。
function showOptions(s) {
var x = document.getElementById("x").value; //"never used"
var y = document.getElementById("y").value; //"never used"
switch (s[s.selectedIndex].id) {
case "case1":
document.getElementById("x").value = "1"; //works
document.getElementById("y").value = "2"; //works
break;
case "case2":
x = "2"; //does not work
y = "4"; //does not work
break;
}
答案 0 :(得分:2)
您需要获取对象引用,而不是带有原始值的变量。
function showOptions(s) {
var cpu = document.getElementById("x"); // take object
var ram = document.getElementById("y");
switch (s[s.selectedIndex].id) {
case "case1":
cpu.value = "1"; // use property of object
ram.value = "2";
break;
case "case2":
cpu.value = "2";
ram.value = "4";
break;
}
}
答案 1 :(得分:2)
session.query(A).group_by(A.id).having(A.remaining_value > 20000)
元素的var cpu = document.getElementById("x").value; //"never used"
属性是一个字符串。当您将该属性的值复制到变量时,您将复制字符串。
value
如果将新值复制到变量,则更改变量的值。
不是对对象的cpu = "2"; //does not work
属性的引用。它与元素没有任何关系。
如果您复制的值是对对象的引用:
value
…然后您可以访问对象并更新属性:
var cpu = document.getElementById("x");