1

我正在寻找一个很好的解决方案来将此 indexOf 转换为 jQuery inArray。我在 IE8 上测试 indexOf 完全失败。任何帮助将不胜感激。

function parse(datestring) {
    var date = parseInt(datestring.slice(0,2), 10),
        month = shortMonths.indexOf(datestring.slice(2,5).toLowerCase()),
        year = parseInt(datestring.slice(5,9), 10);
    return new Date(year, month, date);
}
4

4 回答 4

1

尝试

month = $.inArray(datestring.slice(2, 5).toLowerCase(), shortMonths)
于 2013-11-14T15:51:59.953 回答
1

尝试这个:

month = $.inArray(datestring.slice(2,5).toLowerCase(), shortMonths)

就个人而言,我会保留您的代码。这对你现在拥有的没有任何好处。

于 2013-11-14T15:52:00.743 回答
0

而是避免重写代码,并将其添加到代码前面。它为那些没有得到它的浏览器添加了 indexOf 支持。

if (!Array.prototype.indexOf) {
  Array.prototype.indexOf = function (searchElement , fromIndex) {
    var i,
        pivot = (fromIndex) ? fromIndex : 0,
        length;

    if (!this) {
      throw new TypeError();
    }

    length = this.length;

    if (length === 0 || pivot >= length) {
      return -1;
    }

    if (pivot < 0) {
      pivot = length - Math.abs(pivot);
    }

    for (i = pivot; i < length; i++) {
      if (this[i] === searchElement) {
        return i;
      }
    }
    return -1;
  };
}
于 2013-11-14T15:53:09.560 回答
0

Mozilla 开发者网络上有一个不错的 indexOf 填充物。

于 2013-11-14T15:53:45.457 回答