Herbie: HTML ansprechen mit JS

Hallo allerseits,

ich hab heute eine brudaaal anfängermäßige Frage, die beweisen wird, dass ich JavaScript nicht mal im Ansatz verstanden habe etc, aber ich muss sie trotzdem stellen, in der Hoffnung, dass sich dadurch meine gesitige Blockierung löst:

Ich will beispielsweise auf einer HTML-Seite einen Text haben, also zB "Hund". Daneben soll sich ein button oder link befinden, der, wenn geklickt, diesen Text verändert, also ZB in "Katze". Wenn Hund/Katze in einem input-Formularfeld stehen, gar kein Problem, aber wie sieht's aus, wenn das in einem simplen <p> steht? Kann man das auch ansprechen und analog eine Art "value" verändern? Die Seite soll ja nicht neu geladen werden, es soll kein Umweg über popup/alert o.ä. gegangen werden... Wie könnte man das lösen?

Danke schonmal für jede Hilfe.

Herbie

  1. Ja,

    das ist generell mit den neueren JS-Techniken möglich:
    Du gibst deinem (ich hoffe bei p geht das auch..., sonst DIV nehmen) Element eine ID <p id="meintext">Hund</p> und machst dann
    document.getElementById("meintext").value = "Katze";

    1. das ist generell mit den neueren JS-Techniken möglich:
      Du gibst deinem (ich hoffe bei p geht das auch..., sonst DIV nehmen) Element eine ID <p id="meintext">Hund</p> und machst dann
      document.getElementById("meintext").value = "Katze";

      Hi und danke,
      bin gerade am ausprobieren... wie es scheint, muss es nicht ".value" heißen, sondern ".innerHTML" - dann geht's.

      Herbie

      1. Hi Herbie

        Hi und danke,
        bin gerade am ausprobieren... wie es scheint, muss es nicht ".value" heißen, sondern ".innerHTML" - dann geht's.

        Nein, es muss "firstchild.nodevalue" heißen, innerHTML is proprietär.

        Schöne Grüße

        Johannes

        --
        ss:| zu:) ls:[ fo:) de:] va:) ch:] sh:( n4:& rl:( br:^ js:| ie:{ fl:( mo:|
        Selfcode bei http://emmanuel.dammerer.at/selfcode.html
        1. Hallo,

          bin gerade am ausprobieren... wie es scheint, muss es nicht ".value" heißen, sondern ".innerHTML" - dann geht's.
          Nein, es muss "firstchild.nodevalue" heißen, innerHTML is proprietär.

          *g*
          Nein, es muss ".firstChild.nodeValue" heißen, JavaScript ist case-sensitive.

          viele Grüße

          Axel

        2. bin gerade am ausprobieren... wie es scheint, muss es nicht ".value" heißen, sondern ".innerHTML" - dann geht's.
          Nein, es muss "firstchild.nodevalue" heißen, innerHTML is proprietär.

          Hi Johannes,

          Gebongt - aber es sieht so aus, als müsste es in Wahrheit "firstChild.nodeValue" heißen, sonst geht's schon gar nicht... ;)

          Herbie

          1. Hi Herbie & Alex

            Gebongt - aber es sieht so aus, als müsste es in Wahrheit "firstChild.nodeValue" heißen, sonst geht's schon gar nicht..

            Tut mir leid. Ich habe mich verschrieben. Sollte wohl öfters die Vorschau benutzen *g*

            Schöne Grüße

            Johannes

            --
            ss:| zu:) ls:[ fo:) de:] va:) ch:] sh:( n4:& rl:( br:^ js:| ie:{ fl:( mo:|
            Selfcode bei http://emmanuel.dammerer.at/selfcode.html
  2. Hierzu auch noch eine Frage - bin ein ziemlicher Rookie.

    Müsste folgender Code nicht eigentlich funktionieren (habe ich so leich abgewandelt aus dem Forum hier) und die HTML der eingelesenen Seite in das bezeichnete <Div>-Element schreiben?

    Angeblich soll ja innerHTML auf allen neueren Browsern (exkl. Opera 6) funktionieren. Aber bei mir (IE6) laesst sich das nicht ausfuehren und erzeugt nur Fehler - was mache ich falsch?

    Danke fuer eine Antwort.

    Gruss,
    Tobias

    [Code]

    <script ...>
    var gethtml = document.getElementbyId("seite1").innerHTML;

    function Aendern() {document.getElementbyId("inlinehtml").innerHTML = gethtml;}

    </script>

    <body onload="Aendern()">

    <iframe id=seite1 name="seite1" src="www...../seite1" style="display:no"></iframe>
    <div id="inlinehtml"></div>

    [/Code]