1) Ich habe eine Aufgabe, jQuery in Javascript zu implementieren. Aber aus irgendeinem Grund funktioniert meine Methode nicht. Zum Beispiel, wenn ich schreibewinzige Implementierung von jquery
$('.a').each(function (index) {$(this).append('<b>' + index + '</b>')})
es gibt
DOMException: Fehler beim Ausführen 'querySelectorAll' auf 'Document': '[object Object]' ist kein gültiger Selektor.
auch ich kann this.each
innerhalb anderer Funktionen nicht verwenden. Zum Beispiel, wenn ich jedes anstelle von forEach
innerhalb des Anhangs verwendet hätte, hätte es nicht funktioniert.
<script type="text/javascript">
(function() {
function $(selector) {
if (this instanceof $) return this.search(selector)
return new $(selector);
}
$.prototype = {
constructor: $,
length: 0,
search: function(selector) {
var that=this;
var elems=Array.prototype.slice
.call(document.querySelectorAll(selector));
elems.forEach(function(x,i){that[i]=x;});
this.length = elems.length;
return this;
},
append: function(text) {
if (text instanceof $) {
this[0].appendChild(text[0]);
for(var i = 1; i < this.length-1; i++) {
var p = text[0].cloneNode(true);
this[i].appendChild(p);
}
} else Array.prototype.slice
.call(this).forEach(function(x){
x.innerHTML = x.innerHTML + text;
});
return this;
},
each: function(callback){
for (var i=0;i<this.length;i++){
this[i]=callback.call(this,this[i])
};
return this;
},
}
window.$ = $;
}());
* „ich eine Aufgabe habe jQuery Javascript zu implementieren“ * Er .... jQuery * ** ist *** "on" (in) JavaScript implementiert. –
es arbeitet an Geige ist hier [demo] (http://jsfiddle.net/n4aspu8p/) – ozil
By the way FYI mit der '.each()' Methode auf einen Selektor, der eine '# id' (was ein einzelnes Element ist) macht überhaupt keinen Sinn. –