Javascript-有什么方法可以从函数调用参数中提取字符串?

时间:2018-09-24 18:43:17

标签: javascript html

我正在尝试从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';
            }
        }
    }
}

0 个答案:

没有答案