我正在寻找一个很好的解决方案,将此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);
}
答案 0 :(得分:1)
尝试
month = $.inArray(datestring.slice(2, 5).toLowerCase(), shortMonths)
答案 1 :(得分:1)
试试这个:
month = $.inArray(datestring.slice(2,5).toLowerCase(), shortMonths)
就个人而言,我会保留您的代码。这没有你现在拥有的任何好处。
答案 2 :(得分: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;
};
}
答案 3 :(得分:0)
Mozilla Developer Network上有一个很好的indexOf填充。