IE: indexOf 导致“对象不支持此属性或方法”

Posted

技术标签:

【中文标题】IE: indexOf 导致“对象不支持此属性或方法”【英文标题】:IE: indexOf results in "object doesn't support this property or method" 【发布时间】:2012-06-11 00:18:41 【问题描述】:

我有以下 if 语句:

if (buyArray.indexOf(dealWith,0) != -1)

在 ie(即 XP 上的 8)中出现“对象不支持此属性或方法”。

有人可以解决这个问题吗?

【问题讨论】:

【参考方案1】:

是的,IEindexOf。你可以像这里展示的那样实现一个 shim:https://developer.mozilla.org/en/javascript/Reference/Global_Objects/Array/indexOf

或者如果你已经在使用 jQuery,你可以使用inArray。 underscore 也有一个实现。

【讨论】:

jQuery.inArray 是我的救星。感谢您的提醒。 +1 以获得正确答案,并提供解决方法。这里的教训是要知道旧的 IE 版本有很多缺失的功能,并准备好解决这些问题。【参考方案2】:

简单改成使用jQuery.inArray。感谢 ZER0 的提醒

if ($.inArray(dealWith, buyArray) != -1) 

【讨论】:

您应该将 jQuery 标签添加到您的问题 IMO。 所以他给了你答案然后你决定发布它并接受你自己的答案? @Blackunknown 他指出我可以在哪里找到解决方案,我回答了他帮助我找到的实际解决方案。因此,如果您打算对此持迂腐态度,那么您的问题的答案是肯定的。 TBF,你应该已经给出了 ZER0 的答案 迎合大众意见。我已将接受的答案更新为@ZER0

以上是关于IE: indexOf 导致“对象不支持此属性或方法”的主要内容,如果未能解决你的问题,请参考以下文章

为啥 indexOf 在数组 IE8 上不起作用?

IE7 Array indexOf()修复

JavaScript——数组的indexOf()方法在IE8中的兼容性问题

IE8中字符串的indexOf的替代函数是啥?

IE8下不识别indexOf的问题

ie数组不支持indexOf 方法解决