26

I have the following if statement:

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

Which is breaking in ie (ie 8 on XP) with "object doesn't support this property or method".

Anyone have a work around for this?

martincarlin87
  • 10,848
  • 24
  • 98
  • 145
Fraser
  • 14,036
  • 22
  • 73
  • 118

2 Answers2

52

yeah, IE<9 doesn't support indexOf. You can implement a shim like the one showed here: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf

Or if you already using jQuery you can use inArray. Also underscore has an implementation for it.

ZER0
  • 24,846
  • 5
  • 51
  • 54
  • jQuery.inArray is my saviour. Thanks for the heads up. – Fraser Jun 06 '12 at 22:58
  • +1 for the right answer, plus providing work-arounds. The lesson here is to know that old IE versions have a lot of missing functionality, and to be prepared to work around them. – Spudley Jun 06 '12 at 22:59
20

Simply changed to the use jQuery.inArray. Thanks to ZER0 for the heads up

if ($.inArray(dealWith, buyArray) != -1) {
Fraser
  • 14,036
  • 22
  • 73
  • 118