kostenloser Webspace werbefrei: lima-city


Zugriff auf Element/Object-Attribute/Property via 'Variable'

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    Hi,
    ich habe eine kleine Frage zu Javascript:

    Wenn ich den Wert zB aus einem Textfeld haben und anschließend in eine Variable packen möchte mache ich das so:

    var x = document.getElementById('myID').value;
    
    /* jetzt enthält x den Wert des value-Attributes des Elements mit der Id myID */


    Mich würde allerdings interessieren ob ich auch eine referenz erstellen kann ohne das der Wert kopiert wird, damit nachfolgendes Konstrukt möglich ist:

    var x = document.getElementById('myID').value;
    x = 'mein neuer Wert, der jetzt im Textfeld angezeigt wird';


    x soll also als Art Stellvertreter für document.getElementById('myID').value stehen ums mal ganz sprachlich auszudrücken.

    Ist das möglich?
    ich bedanke mich im Vorraus für eure Antworten :)

    MFG

    Beitrag zuletzt geändert: 21.4.2013 17:07:16 von programtools
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Genügt dir das?
    function changeText() {
    document.getElementById('myID').innerHTML = "mein neuer Wert, der jetzt im Textfeld angezeigt wird";
    }
  4. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    Hi, danke für den Vorschlag aber das hat leider absolut nichts mit meinem Problem zu tun.

    Ich möchte, dass mein Beispiel (2.Codeblock) funktioniert.

    Also muss x = document.getElementById('myID').value; nicht nur x den Wert der value-property geben sondern x muss eine Referenz auf die value property sein. Nur dies erfüllt der = Operator nicht.

    Daher meine Frage, wie kann (bzw kann man überhaupt?) ich die Zuweisung der Adresse unter der der Wert gespeichert ist anstatt des Kopierens des Wertes auf einen neuen Speicherplatz erreichen?

    MFG

    Beitrag zuletzt geändert: 21.4.2013 20:05:16 von programtools
  5. m******e

    timebandit schrieb:
    Genügt dir das?
    function changeText() {
    document.getElementById('myID').innerHTML = "mein neuer Wert, der jetzt im Textfeld angezeigt wird";
    }
    ^^ innerHTML braucht es bei einem Textfeld nicht.

    programtools schrieb:
    Mich würde allerdings interessieren ob ich auch eine referenz erstellen kann ohne das der Wert kopiert wird, damit nachfolgendes Konstrukt möglich ist:

    var x = document.getElementById('myID').value;
    x = 'mein neuer Wert, der jetzt im Textfeld angezeigt wird';

    x soll also als Art Stellvertreter für document.getElementById('myID').value stehen ums mal ganz sprachlich auszudrücken.


    Entweder so..
    document.getElementById('myID').value = 'mein neuer Wert, der jetzt im Textfeld angezeigt wird';

    ..oder als Funktion:
    function schreibe(x) {document.getElementById('myID').value = x}
    schreibe('mein neuer Wert, der jetzt im Textfeld angezeigt wird');
    schreibe('neuer text');
    usw.

    Auslesen geht auch als Funktion:
    function lese(x) {x = document.getElementById('myID').value}
    lese();


    Beitrag zuletzt geändert: 21.4.2013 20:24:16 von menschle
  6. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    Mmm ich glaube ich drücke mich falsch aus.

    danke Menschle auch für deinen versuch, aber das sind ja alles die - ich nenns mal so - gängigen methoden.

    Eine Funktion
    function setX(value){
    document.getElementById('myID').value = value;
    }


    beschreibt am besten das, was passieren soll. diesen Aufbau möchte ich so aber nicht.

    Ich möchte schreiben:
    var x = document.getElementById('myID').value; /* Jetzt hat x nur den Wert wie das textfeld. Ändert sich x ändert sich NICHT das textfeld. ich möchte aber so zuweisen, dass genau das passiert. */
    
    x = 'neuer Wert'; /*jetzt hat x den Wert neuer Wert und  document.getElementById('myID').value; soll nun ebenfalls diesen Wert bekommen.*/


    Ich hoffe jetzt ist es besser verständlich, ich glaube ich ahne aber das das in JS nicht geht ?!

    MFG
  7. m******e

    var x = 'neuer Wert';
    document.getElementById('myID').value = x;
  8. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    menschle schrieb:
    var x = 'neuer Wert';
    document.getElementById('myID').value = x;


    :D Verdammt ich weiss nicht wie ichs erklären soll, das weiss ich ja alles. Meine Frage ist ganz anderst.

    var x = 'neuer Wert';

    soll
    document.getElementById('myID').value = x;

    machen.

    ********************************************

    Beispiel:

    |--------------------------------|
    | Speicherplatz #1
    | Wert: 'Hallo Welt'
    |--------------------------------|

    Auf Speicherplatz #1 verweist document.getElementById('myID').value, hier ist also der Wert des textfeldes Abgelegt
    (im beispiel einfach nur 'Hallo Welt')

    Ich deklariere nun x:

    var x = document.getElementById('myID').value;

    Jetzt gibt es einen weiteren Speicherplatz, quasi einen Klon (in C++ zB. via copy) mit dem gleichen Wert:

    |--------------------------------|
    | Speicherplatz #2
    | Wert: 'Hallo Welt'
    |--------------------------------|

    nun weise ich x einen neuen Wert zu:

    x = 'Hallo Mond';

    und es ändert sich Speicherplatz #2:

    |--------------------------------|
    | Speicherplatz #2
    | Wert: 'Hallo Mond'
    |--------------------------------|

    Speicherplatz #1 dagegen bleibt unverändert:

    |--------------------------------|
    | Speicherplatz #1
    | Wert: 'Hallo Welt'
    |--------------------------------|

    ********************************************

    Ich möchte aber folgendes erreichen:

    Bei der Deklaration von x soll x auch auf Speicherplatz #1 verweisen.

    Nach einer Änderung von x

    x = 'Hallo Mond';

    schauts dann so aus:

    |--------------------------------|
    | Speicherplatz #1
    | Wert: 'Hallo Mond'
    |--------------------------------|

    nun ist der Wert Speicherplatzes #1 auf den neben x auch document.getElementById('myID').value verweist 'Hallo Mond',
    folglich ändert sich auch der Wert document.getElementById('myID').value und somit der Text im Textfeld

    (ohne zusätzliches aber äquivalentes document.getElementById('myID').value = x; )

    Ich hoffe es ist nun etwas verständlicher geworden was ich meinte :)
    MFG






    Beitrag zuletzt geändert: 21.4.2013 23:03:37 von programtools
  9. Also wenn ich dich richtig verstehe sucht du eine Möglichkeit eine Referenz bzw. einen Pointer zu erstellen, in C++-Syntax sähe das dann so aus:
    var input = document.createElement('input');
    var valueRef = &(input.value);
    *valueRef = "Hello world!"

    Wenn ich dich richtig verstanden habe muss ich dich leider enttäuschen, sowas ist in JS leider nicht möglich
  10. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    jam00 schrieb:
    Also wenn ich dich richtig verstehe sucht du eine Möglichkeit eine Referenz bzw. einen Pointer zu erstellen, in C++-Syntax sähe das dann so aus:
    var input = document.createElement('input');
    var valueRef = &(input.value);
    *valueRef = "Hello world!"

    Wenn ich dich richtig verstanden habe muss ich dich leider enttäuschen, sowas ist in JS leider nicht möglich


    Jap genau das wars, schade, hab ich mir aber fast gedacht.

    Gibt es denn stattdessen die Möglichkeiten einen listener so zu setzen, das er Änderung einer Variable mitbekommt und dann eine andere anpasst? (Ausser ein Interval ständig den wert prüfen zu lassen) ?

    MFG
  11. Nicht das ich wüsste aber sag doch mal was du vor hast, vllt. gibt es ja einen viel simpleren Weg
  12. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    Das Vorhaben habe ich ja bereits geschrieben:

    ich möchte der Variablen x einen Wert zuweisen und dann soll eben das Textfeld auch automatisch angepasst werden.
    Es ging mir eigentlich nur um die Frage allgemein, ohne speziellen Kontext.

    Da das allerdings nicht geht mit javascriptmitteln werde ich es denke ich über Klassen lösen bzw alles direkt zuweisen.

    Vielen Dank an alle :)

  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!