我正在尝试从HTML调用makeItem(breadstick)
,但出现错误:Uncaught ReferenceError: breadstick is not defined
。我相信这是因为在调用函数时,脚本中的参数必须是数字或变量。
最初,breadstickvar
只是breadstick
,但后来我在Uncaught TypeError
得到了var elem = document.getElementById(item + "Bar");
。我正在尝试引用我的HTML元素BreadstickBar。
我希望会发生的是调用makeItem(breadstick),所有item + "var"
都等于“ breadstickBar”,因此可以正常工作,而document.getElementById(item + "Bar")
则等于BreadstickBar并引用我的HTML元素。我认为这是行不通的,因为breadstick
不再是变量。
有什么办法可以做到吗?
1)调用该函数,以免出错。
2)重新排列我的代码,以便 var elem = document.getElementById(item + "Bar");
正常工作。
var breadstickvar = {
number: 0,
price: 1,
time: 1000,
beingMade: 0
};
function makeItem(item) {
if ( (item + "var").beingMade == 0) {
(item + "var").beingMade = 1;
var elem = document.getElementById(item + "Bar");
var width = 0;
var id = setInterval(frame, 10);
function frame() {
if (width >= 200) {
clearInterval(id);
} else {
width += 2;
elem.style.width = width + 'px';
}
}
}
}
以前是这样的:
var breadstick = {
number: 0,
price: 1,
time: 1000,
beingMade: 0
};
function makeItem(item) {
if ( item.beingMade == 0) {
item.beingMade = 1;
var elem = document.getElementById(item + "Bar");
var width = 0;
var id = setInterval(frame, 10);
function frame() {
if (width >= 200) {
clearInterval(id);
} else {
width += 2;
elem.style.width = width + 'px';
}
}
}
}