schieben Ich habe also eine einfache Klasse mit wenigen Eigenschaften. Unter Verwendung des Prototyping füge ich einige Methoden hinzu. Diese Methoden gibt this
zurück, also konnte ich tham zusammen ketten.Kann Element nicht in Array nach der Verwendung von QuerySelectorAll
Get
Methode findet alle Elemente und legt in allCurrentElements
, die ein Array ist (oder zumindest denke ich so). Und wenn ich CreateElement
Methode verwende, erstellt es einfach Element und versucht, es in das vorhandene Array allCurrentElements
zu schieben.
Um es zu verwenden, schreiben Sie einfach var a = _h.Get('p').CreateElement('div')
. Und hier bekomme ich einen Fehler Uncaught TypeError: this.allCurrentElements.push is not a function(…)
.
Wenn ich versuche, neu erstellte Elemente mithilfe von Index zuzuweisen, wird kein Fehler ausgegeben. Dieses Element wird jedoch nicht im Array angezeigt.
var _h = (function(){
var Helper = function(){
this.allCurrentElements = [];
}
Helper.prototype.Get = function(query){
this.allCurrentElements = document.querySelectorAll(query);
return this;
}
Helper.prototype.CreateElement = function(el, attr) {
var elem = document.createElement(el);
for (var a in attr) {
elem[a] = attr[a];
}
//this.allCurrentElements[this.allCurrentElements.length] = elem;
this.allCurrentElements.push(elem);
return this;
}
return new Helper();
})();
https://jsfiddle.net/Ldp58onu/
Vielen Dank, leider kann ich nur eine Antwort akzeptieren :( –
kein Problem. Sie haben Ihre Antwort. Es ist gut :) –
oder nur [] .slice.call() , wenn Sie nicht geben möchte zu viel :) – HopeNick