innerHTML+Bild mit Variablennamen: innerHTML+Bild mit Variablennamen

Halo!

Ich habe eine Frage udn zwar was an diesem code falsch ist:

document.all.bild1.innerHTML = '<img src="'x1'+.jpg">';

x1 ist eine Variable

mfg

  1. Grütze .. äh ... Grüße!

    Ich habe eine Frage udn zwar was an diesem code falsch ist:

    document.all.bild1.innerHTML = '<img src="'x1'+.jpg">';

    x1 ist eine Variable

    1. es fehlt ein "+"
    2. das vorhandene "+" ist an der falschen Stelle, nämlich im String


    Kai

    --
    Der vertuschte Gefahrstoff: Dihydrogenmonoxid
    ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|
  2. Hi,

    Ich habe eine Frage udn zwar was an diesem code falsch ist:
    document.all.bild1.innerHTML = '<img src="'x1'+.jpg">';

    auf die Syntaxfehler hat Kai ja schon hingewiesen. Zusätzlich dazu benutzt du das all-Objekt, das eine Erfindung von Microsoft ist, mittlerweile aus Kulanz von einigen anderen Browsern auch unterstützt wird, aber nicht zum Standard gehört.

    Außerdem lässt die Namensgebung vermuten, dass document.all.bild1 in deinem Fall ein img-Element referenziert, und du sprichst dessen innerHTML an. Das img-Element HAT aber gar keinen Inhalt, es ist per definitionem ein leeres Element.
    Wenn du die src-Eigenschaft des Bildes ändern willst, kannst du das über

    document.all.bild1.src = neue Bild-URL

    tun, noch besser wäre allerdings, auf das all-Objekt zu verzichten und standardisierte Methoden zu verwenden:

    document.images['bild1'].src = neue Bild-URL

    So long,
     Martin

    --
    Computer lösen für uns Probleme, die wir ohne sie gar nicht hätten.
    1. Grütze .. äh ... Grüße!

      Zusätzlich dazu benutzt du das all-Objekt, das eine Erfindung von Microsoft ist, mittlerweile aus Kulanz von einigen anderen Browsern auch unterstützt wird, aber nicht zum Standard gehört.

      Ups #1  Mift. Ich habs nicht gesehen. Wo außer bei Opera wird denn document.all überhaupt kulanterweise unterstützt (interessehalber, habe nicht vor das jemals zu nutzen)

      Außerdem lässt die Namensgebung vermuten, dass document.all.bild1 in deinem Fall ein img-Element referenziert, und du sprichst dessen innerHTML an. Das img-Element HAT aber gar keinen Inhalt, es ist per definitionem ein leeres Element.

      Ups #2 ... na ja, innerhtml ist für mich ohnehin böse ;) Hab mir sogar ein eigene Funktion gebastelt, damit ich meine Strukturen einfach per Objekt-Literal-Schreibweise definieren kann und das dann DOM-gerecht umgesetzt wird.


      Kai

      --
      Der vertuschte Gefahrstoff: Dihydrogenmonoxid
      ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|
      1. Hallo Kai,

        [das all-Objekt] mittlerweile aus Kulanz von einigen anderen Browsern auch unterstützt wird, aber nicht zum Standard gehört.
        Ups #1  Mift. Ich habs nicht gesehen. Wo außer bei Opera wird denn document.all überhaupt kulanterweise unterstützt (interessehalber, habe nicht vor das jemals zu nutzen)

        beim Firefox. Wenn man es mit "if (document.all)" abfragt, leugnet er zwar, es zu kennen; wenn man es direkt verwendet, kennt er's aber auf einmal doch.

        Das img-Element HAT aber gar keinen Inhalt, es ist per definitionem ein leeres Element.
        Ups #2 ... na ja, innerhtml ist für mich ohnehin böse ;)

        Naja, man kann nicht alles sehen. ;-)
        Okay, ich selbst würde innerHTML auch nicht benutzen wollen, aber wenn ich's lese, weiß ich es einzuordnen.

        Ciao,
         Martin

        --
        Ist die Katze gesund,
        freut sich der Hund.
      2. Hi,

        Ups #2 ... na ja, innerhtml ist für mich ohnehin böse ;) Hab mir sogar ein eigene Funktion gebastelt, damit ich meine Strukturen einfach per Objekt-Literal-Schreibweise definieren kann und das dann DOM-gerecht umgesetzt wird.

        Überflüssig. Weder ist innerHTML "böse", noch ist ein Auseinanderdröseln i.d.R.(!) sinnvoll. Üblicherweise ist innerHTML schneller als die "echten" DOM-Methoden - und da ist die Rechenzeit, die das Auseinanderdröseln benötigt, noch gar nicht mitgrechnet ... :-)

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        1. Grütze .. äh ... Grüße!

          Überflüssig. Weder ist innerHTML "böse", noch ist ein Auseinanderdröseln i.d.R.(!) sinnvoll. Üblicherweise ist innerHTML schneller als die "echten" DOM-Methoden - und da ist die Rechenzeit, die das Auseinanderdröseln benötigt, noch gar nicht mitgrechnet ... :-)

          Ich schrieb ja auch "für _mich_ böse".

          Ich finde, spätestens bei etwas aufwendigeren Strukturen mit vielen eingebauten Variablen versaut die Stringzusammenkleberei und Jongliererei mit Stringbegrenzern und Escapes, die für innerhtml nötig ist,total die Übersichtlichkeit des Codes. Gut, ich habe dadurch den Nachteil der etwas längeren Rechenzeit, das weiß ich wohl.

          dennoch finde ich

          element.innerHTML = "<a href=\""+url+"\"+ title=\""+titel+"\">"+linktext+"<\/a>"

          oder

          element.innerHTML = "<a href='"+url+"'+ title='"+titel+"'>"+linktext+"<\/a>"

          einfach entsetzlich unübersichtlich gegenüber

          var xy = {  
             element: "a",  
             href: url,  
             title: titel,  
             child: linktext  
          }  
          element.appendchild(DElement(xy))
          

          zumal es bei innerHTML spätestens bei Tabellen zu Problemen kommt (IE) und ich auch immer darauf achten muß, meine Tags wieder zu schließen.

          Das Ganze ist aber sicherlich auch eine Glaubensfrage, ich mag nun einmal übersichtlichen Code.


          Kai

          --
          Der vertuschte Gefahrstoff: Dihydrogenmonoxid
          ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|
          1. Hi,

            einfach entsetzlich unübersichtlich gegenüber

            Klar, es kommt immer drauf an. Fragt sich, welche Aufgaben man üblicherweise zu lösen hat.

            Man sollte IMHO halt immer das Sinnvollste nehmen, und sich nicht nur auf eine Möglichkeit beschränken ...

            ... nur weil man es für "böse" hält. Nicht, daß man noch die JS-Engine exorzieren muß! =;->

            Gruß, Cybaer

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
            1. Grütze .. äh ... Grüße!

              Man sollte IMHO halt immer das Sinnvollste nehmen, und sich nicht nur auf eine Möglichkeit beschränken ...

              Klar. Nur habe ich persönlich unheimliche Schwierigkeiten, mich nicht im Dschungel der Verkettung zu verfangen. Schon bei dem einfachen Beispiel mit dem <a> halte ich mich ewig auf, um mich in der Syntax nicht zu verheddern. Wenn es nur um ein paar kurze Strings geht, geht es ja noch, dazu lohnt es sich auch nicht, die zusätzliche Funktion einzufügen. Aber wenn sie eh schon drin ist benutze ich sie auch ;)

              ... nur weil man es für "böse" hält. Nicht, daß man noch die JS-Engine exorzieren muß! =;->

              Es ist leider nicht nur auf die Engine beschränkt, Javascript an sich ist böse.

              SIE haben es erfunden.


              Kai

              --
              Der vertuschte Gefahrstoff: Dihydrogenmonoxid
              ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|
              1. Hi,

                ... nur weil man es für "böse" hält. Nicht, daß man noch die JS-Engine exorzieren muß! =;->
                Es ist leider nicht nur auf die Engine beschränkt, Javascript an sich ist böse.

                LOL - ich bin auch böse - vielleicht code ich deswegen so gerne JS? >;->

                SIE haben es erfunden.

                Ich bin gebürtiger Bielefelder. Muß ich noch mehr sagen? ;)

                Gruß, Cybaer

                --
                Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!