我遇到了一个奇怪的问题!
我有这段代码:
<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>
但当我更改值时,我得到“Uncaught TypeError:无法读取未定义的属性'Gold'”
但是window.PRICES
并未定义!
怎么了?
PS:我可以使用GC控制台呼叫pick('Gold','10')
!!!
答案 0 :(得分:7)
切换onchange
处理程序的参数顺序。它应该是pick(this.name, this.value)
,因为您PRICES
首先访问name
对象 ,value
只有然后 },就像您的示例pick('Gold', '10')
。