indexOf在IE8中抛出错误,我正在使用knockoutjs

时间:2014-04-07 13:33:23

标签: knockout.js internet-explorer-8 indexof

从代码看起来,对象不支持该属性。

function _isLabelForDisplayablePrice(label, scope) {
    var g = self.data.general,
    checkedPriceVals = g[scope + 'VehicleConfig'].displayablePrices(),
    priceObjects = g[scope + 'VehicleConfig'].featuredPrices();

    for (var i = 0; i < priceObjects.length; i++) {
        // Find the parent object of the label field
        if(label.name() == priceObjects[i].fields.label.name()) {
            // Return true if displayable is checked
            return checkedPriceVals.indexOf(priceObjects[i].fields.displayable.value())  >= 0;
        }
    }

    // should never reach here, but just in case
    return false;
}

2 个答案:

答案 0 :(得分:0)

试试这个

    return checkedPriceVals.toString()
.indexOf(priceObjects[i].fields.displayable.value())>=0;

它会起作用。

答案 1 :(得分:0)

使用$ .inArray而不是indexOf,或者你可以定义方法:

if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function (obj, start) {
    for (var i = (start || 0), j = this.length; i < j; i++) {
        if (this[i] === obj) { return i; }
    }
    return -1;
}
}