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

Beitrag lesen

Vielen Dank!

Generell sollte man zwei Sachen trennen: Die Funktionsfähigkeit eines Codes bei korrekter Benutzung und die Qualität der Fehlerausgabe bei inkorrekten oder unbrauchbaren Eingabewerten. Natürlich kann man der Funktion z.B. einen Array übergeben, in der keine Elemente drin sind. Es ist deine Entscheidung, in wie weit du noch prüfst, ob das wirklich Elemente sind, und Exceptions wirfst, wenn die Eingabewerte nicht brauchbar sind.

Man kann init auch beliebige Arrays übergeben (nicht nur welche, die nur HTML-Elemente enthalten). Es wird eine weitere Fallunterscheidung gemacht:
Der zweite Parameter dient eigentlich der Spezifizierung des Kontextes, wird
jedoch true übergeben, so wird der Array als Array gespeichert (in this[0]), andernfalls werden die Elemente des Arrays ganz normal auf this[0] bis this[arrayLength-1] "gelegt".
Übergibt man einen Array mit true als 2. Parameter, so kann man diesen per chaining weiter verarbeiten (dies geht auch, wenn man z.B. ein Objekt-Literal übergibt). Dann kann man bspw. Folgendes schreiben:

  
_(arrName, true).shuffle().erase(0).get()  

Zur Manipulation von HTML-Elementen kann man bspw. einfach einen Array oder eine Collection übergeben oder einen String, der als Selector fungiert:

  
// findet und speichert alle Elemente mit className small und die Elemente mit den  
// ids unic1 und unic2, wobei die Suche eingeschränkt wird auf die Elemente,  
// die im Baum "unter" dem Element mit der id "boss" liegen:  
_('.small,#unic1,#unic2', '#boss')  

Lieben Gruß,
Laura