• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

mal was objekt orientiertes

K

kutiku

Guest
Hi
ich möchte nun zum elements objekt noch eine funktion drauf haun welche mir
je nach elements[?].value was liefert.
Wie schaut nun diese Filterfunktion aus, damit Sie mit dem value vom element
umgehen kann?

Also ich habe das bis jetzt so:

function filter()
{

this.filtername= function()
{
hier möchte ich nun mit dem value arbeiten
}

}

document.formularname.elementname.filter = new filter;

alert(document.formularname.elementname.filter.filtername());


Kann man das ganze gleich so gestalten, dass ich nicht für jedes Element das
new filter machen muss?
 
also ich bin kein Javascript Guru und programmiere lieber in PHP oder C++ aber mein erster (Rate-) Versuch zur Lösung wäre:
Code:
elements.prototype.filter = function ()
{
  // Code den die Funktion filter ausführen soll
  alert ("funzt");
}

document.formularname.elementname.filter ();

(Dieser Code ist extrem ungetestet, es gibt keine Garantie auf Lauffähigkeit...)
 
leider kann ich mit prototype dem elements nichts anhängen :(

PS: Ich schreibe auch lieber mit PHP...aber manchmal braucht man halt JS
 
wie schon gesagt mein erster (Rate-) Versuch....

wie wärs dann ganz plump mit object.prototype ??

oder was ist mit element.prototype
(schliesslich ist elements eine Collection oder Array.... element könnte das einzelne Element sein....)

ich kenne mich im DOM von JS ned so doll aus (AS schon eher, das soll ja JS ähnlich sein....) also einfach mal die Hierarchie anschauen und durchtesten... irgendwie muß es ja möglich sein....

P.S.: gibts eigentlich irgendwo eine Grafik / Hierarchie der einzelnen Objekte in JS??
 
Immer noch nix.

Aber diese generelle Sache war mein kleineres und zweites Problem, da ja document.formname.elementname.filter = new filter; geht.

Mich würd' jetzt interessieren, wie ich mit filter auf das value von dem entsprechenden element komme.
 
hmmm naja dann weiß ichs auch ned... müßte ich mal ein bisschen mit rumspielen, um die protoype Geschichte herauszufriemeln....

zu Problem zwei:
also filter ist ein Member des gewünschten Form Elements vom Typ filter (kompliziert, weil alles gleich heißt)
Damit die Instanz auf die Eigenschaften des enthaltenen Objektes zugreifen kann, muß es Kenntnis über dieses Objekt erhalten, d.h. man muß der Instanz eine Referenz auf das Element mitgeben, die es dann benutzen kann.

Dein Code könnte also folgendermaßen ausschauen:
Code:
CFilter = function (elem)
{
  this.m_element = elem;
}

CFilter.prototype.filtername = function ()
{
   alert (m_element.value);
}

document.formname.elementname.filter = new CFilter (document.formname.elementname);

document.formname.elementname.filter.filtername ();
(auch dieser Code ist ungetestet!!)

die Frage ist, ob man dann weitergehen könnte und folgendes zaubern kann:
Code:
CFilter = function (elem)
{
  this.m_element = elem;
}

CFilter.prototype.filtername = function ()
{
   alert (m_element.value);
}

CFilter.prototype.__proto__ = document.formname.elementname.prototype;

document.formname.elementname.prototype.__proto__ = CFilter.prototype;

document.formname.elementname.filter.filtername ();
(dieser Code ist extremely ungetestet und nur eine Vermutung)
 
hab's

aber nur für'n N6:
man braucht den Konstruktor für's input, und der ist HTMLInputElement. Damit kann man dann jedes Element prototypen. Und die neuen Dinger können mittels this.value wissen was im Input grad drinn' ist.

Das kann aber leider nur der N6 und darum muss ich dem filter doch "manuell" mitteilen, wie das Element heißt.

Schade.
 
Zurück
Oben