Variablen Funktionen "hinzufügen" (wie bei variable.replace..)

also ich programmiere was (ähnlich wie jQuery).. eine Art Hilfestellung für einen JS-Anfänger.

Jetzt möchte ich ihm aber diese Möglichkeiten ermöglichen:
document.getElementById("test").style.mark([ color ]) --> markiert den Text, [ color ]= evtl. Farbe (sonst gelb)

Das geht bestimmt mit jQuery. Ich will dich nicht verunsichern, aber wieso willst du etwas entwickeln, was es schon gibt? Oder hast du Verbesserungen, ich meine jQuery ist sehr mächtig und wird auf vielen Websites angewendet.
 
ich weiß und es ist auch weit besser und "kürzer"

(ich komm auch nicht mit dean edwards /packer/ zurecht..)
aber ich bin erst 12 und (will nicht angeben) sehr "gut".. viele erwachsene informatiker finden das "super", "komisch".. das ich schon so viel kann
..naja..

mein freund ist 11 und er programmiert auch (wie ich hallt ^^) aber kein js..
er programmiert auch php

und ich will ihm helfen.. und dazu lern ich ja auch noch was

PS: ich werde informatiker :-)
 
Bei manchen Browsern könnte das hier funktionieren:
Javascript:
CSSStyleDeclaration.prototype.mark = function(color) {
  this.backgroundColor = (color || "yellow");
};
jQuery & Co. lösen das aber in der Regel so, dass DOM-Objekte über eine spezielle Funktion erst mit den Hilfsfunktionen dekoriert werden. Das sähe dann in etwa so aus:
Javascript:
function helper(obj) {
  obj.mark = function(color) {
    obj.backgroundColor = (color || "yellow");
  };
  return obj;
}

helper(document.getElementById("test").style).mark("red");

Grüße,
Matthias

PS: Es gibt hier auch eine Ändern-Funktion, mit der du deine Beiträge nachträglich editieren kannst. Mach das bitte in Zukunft, anstatt mehrere Beiträge in Folge zu schreiben.
 
also wie geht das wenn ich so haben will:

document.getElementById("lll").blabla();

und wenn es geht bei allen objekten..

PS: mach ich
 
Wenn du es unbedingt so haben willst (wieso auch immer):
Javascript:
Object.prototype.blabla = function() {
  alert("blabla");
};
Ist aber nicht zu empfehlen, da man dann z.B. Objekte als Hashes nicht mehr richtig verwenden kann (jedes Objekt hat dann von Haus aus den zusätzlichen Schlüssel "blabla").

Grüße,
Matthias
 
Ist aber nicht zu empfehlen, da man dann z.B. Objekte als Hashes nicht mehr richtig verwenden kann (jedes Objekt hat dann von Haus aus den zusätzlichen Schlüssel "blabla").

Statt Object kann man den prototype des Element-constructors zu Rate ziehen, dann wären nur HTML-Elemente betroffen :)

Code:
<script type="text/javascript">
<!--
Element.prototype.mark=function(color)
{
  this.style.color=color;
}
//-->
</script>
<div onclick="this.mark('red')">mach mich rot</div>
Das machen eigentlich alle Browser mit...bis auf: naja, ihr wisst schon :-)
Angeblich sollte er das in Version 8 auch können, zumindest meiner kanns aber net :(

Sehr Schade, wie ich finde, das würde die Tür Öffnen für eine neue Epoche des DHTML.
 
das is einfach nur ein dummer browser.. man sollte am anfang (wenn man xp, vista, 7 installiert hat) noch firefox.. oder meinen persönlichen favoriten: chrome installiert sein.. oder zur auswahl stehn..

EDIT: du hast ja grad was von Element gesagt/schrieben.. in jquery hab ich glaub ich mal Element.properties gesehn.. ^^
 
Zuletzt bearbeitet:
Zurück