4

I have two selectors

    var allNodes = $("a.historyEntry");
    var errorNodes = $("a.historyEntry.error");

I would like to to find a node before first error node, so I need to find an index of first error node, how to do it?

I tried to use inArray method, but it doesn't work for this

$.inArray(allNodes, errorNodes.first())

or

$.inArray(allNodes, $(errorNodes.first()))

Is there any fast way to do it in jQuery or do I have to use for loop?

IAdapter
  • 62,595
  • 73
  • 179
  • 242
  • If I understand you correctly: some of the nodes in `allNodes` have the `error` class, and you want to find the last "good" node before the first "error" node. Is that right? – Blazemonger Oct 14 '11 at 13:32

3 Answers3

10

index()?

It's like indexOf... but just without the Of... it returns the index of the element if it exists, and -1 if it doesn't.

Matt
  • 74,352
  • 26
  • 153
  • 180
2

Use index(). It does exactly the same thing as indexOf in java.

fireshadow52
  • 6,298
  • 2
  • 30
  • 46
2

$.inArray value is the first parameter then the array:

$.inArray(allNodes, errorNodes.first())

should be:

$.inArray(errorNodes.first(), allNodes)

Example

Joe
  • 80,724
  • 18
  • 127
  • 145