innerHTML+Bild mit Variablennamen
innerHTML+Bild mit Variablennamen
- javascript
0 Kai3450 Der Martin0 Kai3450 Der Martin0 Cybaer
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
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
Cü
Kai
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
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.
Cü
Kai
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
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
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.
Cü
Kai
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
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.
Cü
Kai
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