Array Plugin
Can
- javascript
0 1UnitedPower0 Can
0 JürgenB
Hallo Leute,
ich weiss es gibt das Array Object, womit man per prototype dahin neue Funktionen einbinden kann.
Aber meine Frage ist, da ich mich heute mit JQuery Plugins befasse, wieso folgendes nicht funktioniert:
var arrayBla = ("Ein", "Array");
$.fn.arrayHat = function(string){
for(var i=0, l=this.length; i<l; i++){
if(this[i] === string) { return true; }
}
return false;
}
arrayBla.arrayHat("Array");
Müsste der Plugin nicht aufgerufen werden? Und sollte sich this nicht auf das Array beziehen? Oder funktionieren diese Plugins nur für DOM Elemente?
Danke im voraus :-)
var arrayBla = ("Ein", "Array");
$.fn.arrayHat = function(string){ for(var i=0, l=this.length; i<l; i++){ if(this[i] === string) { return true; } } return false; }
arrayBla.arrayHat("Array");
>
> Müsste der Plugin nicht aufgerufen werden?
Die Fehlerkonsole ist dein bester Freund.
~~~javascript
var arrayBla =["Ein","Array"];
// stuff
$.arrayHat.apply( arrayBla, ["Array"] );
"string" ist zwar kein reserviertes in Javascript, aber leicht misszuverstehen und auch kein aussagekräftiger Bezeichner.
Die Fehlerkonsole ist dein bester Freund.
var arrayBla =["Ein","Array"];
// stuff
$.arrayHat.apply( arrayBla, ["Array"] );
Sorry, ich verstehe deinen Beitrag nicht so genau...
Machen wir es mal mit verständlichen Namen :-)
~~~javascript
var ids = [2,3,4];
$.fn.hat = function(id){
for(var i=0; i<this.length; i++){
if(this[i]===id){ return true; }
}
return false;
}
ids.hat(2);
var ids = [2,3,4];
$.fn.hat = function(id){
for(var i=0; i<this.length; i++){
if(this[i]===id){ return true; }
}
return false;
}ids.hat(2);
"ids" ist immernoch ein Array. Und dein Array kennt die Methode "hat" nicht, die jast du ja dem jQuery-Objekt hinzugefügt. Aber mit call und apply kannst du Methoden in fremden Kontexten aufrufen.
Hallo Can,
warum unbedingt jquery, Javascript kann das auch, mit Array.prototype
Kennst du schon typeof?
Gruß, Jürgen
Hallo,
warum unbedingt jquery, Javascript kann das auch, mit Array.prototype
^alleine
Kennst du schon typeof?
vergiss den Satz, ich habe mich vom Namen ´"string" täuschen lassen.
Gruß, Jürgen
Hallo,
warum unbedingt jquery, Javascript kann das auch, mit Array.prototype
Klar, mit Array.prototype geht es, und ist auch der richtige Ansatz, aber mir geht es nur um interessehalber. :-)