【问题标题】:indexOf throwing error in IE8, I am using knockoutjs [duplicate]indexOf 在 IE8 中抛出错误,我使用的是 knockoutjs [重复]
【发布时间】:2014-05-19 19:01:08
【问题描述】:

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

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;
}

【问题讨论】:

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


    【解决方案1】:

    是使用 $.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;
    }
    }
    

    【讨论】:

      【解决方案2】:

      试试这个

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

      它会起作用的。

      【讨论】:

        猜你喜欢
        • 2013-04-17
        • 1970-01-01
        • 2014-10-30
        • 1970-01-01
        • 2013-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-05
        相关资源
        最近更新 更多