peterS.: Schneller Check, ob array und/oder HTMLCollection/NodeList/Args

Beitrag lesen

Gruss Laura,

Ach, und falls zufällig jemand eine zuverlässige Methode weiß, mit der man schnell
auf HTMLCollection/NodeList - und nur auf dies - schließen kann, ist das auch
sehr willkommen ;}

Sowohl [HTMLCollection]s als auch [NodeList]s implementieren eine [item]-Methode.
Soweit mir bekannt ist, gibt der »typeof« operator für alle Browser außer für MSIE's
kleiner 9 (habe aber gerade keinen 9er zur Hand, um das zu prüfen) "function" zurück.

"msie < 9" melden "object" - dieses Objekt ist aber "callable". Eine strenge Prüfung
müsste da also mit "try catch" arbeiten oder eine selbstgestrickte Methode [isCallable]
hinzuziehen.

Hinreichend genau sollte aber schon folgende beispielhaft gegebene Implementierung sein:

var isHTMLCollectionOrNodeList = function (obj) {  
  
  var item = obj.item;  
  return !!((typeof obj.length == "number") && item && ((typeof item == "function") || (typeof item == "object")));  
};

so long - peterS. - pseliger@gmx.net

--
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - Douglas Crockford

ie:( fl:) br:> va:( ls:& fo:) rl:) n3;} n4:} ss:} de:µ js:} mo:? zu:]