【发布时间】:2012-12-03 03:28:58
【问题描述】:
我遇到了一个奇怪的问题!
我有这个代码:
<script>
window.PRICES = {
'Gold' : { 10: 299, 20: 400, 100: 1745, },
'Coins': { 10: 300, 40: 355, 1000: 30000, },
};
</script>
<script>
function pick(i,n) {
document.getElementById("Item").innerHTML = i+" "+n;
document.getElementById("Price").innerHTML = (window.PRICES)[i][n];
}
</script>
函数pick被select的onchange事件调用:
<select name="Gold" onchange="pick(this.value,this.name)">
<option value="10">10 Gold</option>
<option value="20">20 Gold</option>
<option value="100">100 Gold</option>
</select>
但是当我更改值时,我得到“未捕获的类型错误:无法读取未定义的属性 'Gold'”
但是window.PRICES 不是未定义的!
怎么了?
PS:我可以使用 GC 控制台调用pick('Gold','10')!!!
【问题讨论】:
-
在您的事件处理程序中添加一个
console.log(i, n)并验证这些值是否真的是您想要的。 -
参数顺序错误,改为
pick(this.name, this.value) -
为了不混淆这些东西,请在函数中为您的参数提供正确的名称,将其设为
function pick(name, value) {}
标签: javascript javascript-events