2009-01-05 1 views
7

Ich frage mich, ob jemand eine Methode zur Verwendung der JQuery-Methode find oder inArray zum Suchen eines Elements in einem Array kennt. Ich kann nichts in den Dokumenten finden.Mithilfe der JQuery-Methode find oder inArray nach einem Element in einem Array suchen

zum Beispiel:

var items = [{id:1, name:'bob'}, {id:2, name:'joe'}, {id:3, name:'ben'}]; 
var found = $(items).find("[name='ben']"); 

oder

var items = [{id:1, name:'bob'}, {id:2, name:'joe'}, {id:3, name:'ben'}]; 
var found = $.inArray("[name='ben']", items); 
+2

Sie können auch '$ .grep' verwenden: http://stackoverflow.com/questions/7364307 – hyperslug

Antwort

3

Ich denke, was Sie suchen das RichArray Plugin ist und insbesondere

$.RichArray.filter() 

Sie es bei RichArray

greifen
+0

Rich Array sieht ordentlich aus. – EndangeredMassa

+1

Die Methode in gibt einen booleschen Wert zurück und ich brauche wirklich den Index oder vorzugsweise das Element selbst. – bendewey

+0

noch sieht die in-Methode viel anders als die inArray-Methode der jQuery/Dienstprogramme – bendewey

0

Die jQuery-Suchmethode wird auf dem DOM ausgeführt. Wenn Sie versuchen, ein Array suchen, werden Sie wahrscheinlich diesen Code getroffen:

// check to make sure context is a DOM element or a document 
if (context && context.nodeType != 1 && context.nodeType != 9) 
    return [ ]; 

Das kann in der jQuery-Quelle für die find-Methode ermittelt werden. Es wird immer ein leeres Array zurückgegeben, wenn Sie kein DOM-Element oder das Dokument als Kontext verwenden.

Verwandte Themen