getElementById
chris
- javascript
Hallo
Sorry, aber ich versteh einfach nicht warum das nicht funzt!
if (navigator.appName.indexOf('Netscape') != -1) { FensterBreite = self.innerWidth } else if (navigator.appName.indexOf('Microsoft') != -1) { FensterBreite = document.body.clientWidth };
var breite = 500; // Bildbreite
padding = (FensterBreite-breite)/2
document.write(padding);
---> ab hier das problem:
document.getElementById('test').paddingLeft="(padding)px;"
im body möcht ich dann folgendes ausgeben:
<div id="test" style="width:50px; height:50px; background: #000000;"></div>
Bis document.write(padding); = alles in ordnung!
Jetzt will ich einfach das padding auf das div übergeben .. .das müsste doch so passen?
was mach ich falsch?
Zu sehen auf: http://www.generationweb.at/js.html
danke
Bounjoun chris,
if (navigator.appName.indexOf('Netscape') != -1) { FensterBreite = self.innerWidth } else if (navigator.appName.indexOf('Microsoft') != -1) { FensterBreite = document.body.clientWidth };
Und wenn ich mit Safari surfe? Solche Browserweichen, die den UserAgent oder Teile davon abfragen, sind in vielen Fällen zum Scheitern verurteilt.
> ---> ab hier das problem:
> ~~~javascript
> document.getElementById('test').paddingLeft="(padding)px;"
>
Sei so gut und schreib mal in einer CSS-Datei die Regel:
#test {
padding-left: (200)px;
}
und schau was passiert... Fällt dann der Groschen? Wenn nicht, bemühe die Fehlerkonsole vom Firefox...
Adiou.
Bounjoun chris,
---> ab hier das problem:
document.getElementById('test').paddingLeft="(padding)px;"
>
> Sei so gut und schreib mal in einer CSS-Datei die Regel:
>
> ~~~css
#test {
> padding-left: (200)px;
> }
und schau was passiert... Fällt dann der Groschen? Wenn nicht, bemühe die Fehlerkonsole vom Firefox...
Adiou.
Schon klar ...
aber ich muss doch das - padding (in diesem Fall, da ja von javascript) - in klammern ausgeben?
ich mein mit:
document.getElementById('test').paddingLeft="padding px;" funzt sowieso nicht, mal abgesehn davon das das padding überhaupt nicht in die id (div id="test") übernommen wird ....
Adiou :D
Hi,
aber ich muss doch das - padding (in diesem Fall, da ja von javascript) - in klammern ausgeben?
Warum?
Wenn du es „normal“, bei der Notation in CSS-Syntax, ohne Klammern schreibst - warum sollen da jetzt plötzlich welche drumherum kommen, nur weil du den Wert per JavaScript zuweisen willst?
document.getElementById('test').paddingLeft="padding px;" funzt sowieso nicht, mal abgesehn davon das das padding überhaupt nicht in die id (div id="test") übernommen wird ....
Erstens siehe meine anderen Antwort, und zweitens ist auch "padding px;" immer noch kein gültiger Wert für padding-left.
MfG ChrisB
Okay .. .also nochmal .. .hab mich wahrscheinlich nicht richtig ausgedrückt bzw. das Prob nicht richtig beschrieben .. .also nochmal:
if (navigator.appName.indexOf('Netscape') != -1) { FensterBreite = self.innerWidth }
else if (navigator.appName.indexOf('Microsoft') != -1) { FensterBreite = document.body.clientWidth };
var breite = 500; // Bildbreite
padding = (FensterBreite-breite)/2
document.write(padding);
soweit kein prob ...
ich will dieses padding - diesen WERT:
document.write(PADDING);
in dises div:
<div id="test" style="width:50px; height:50px; background: #000000;"></div>
übergeben
wie geht das???
wenn ich zB:
<div id="test" style="width:50px; height:50px; background: #000000; padding-left: 30px"></div>
schreib - kein prob
ich will aber das folgendes ausgegeben wird:
<div id="test" style="width:50px; height:50px; background: #000000; padding-left: HIER DER WERT VOM SCRIPT + px"></div>
Klar?
ich weis das is ne anfängerfrage .. aber naja .. das bin ich ja auch :D
Hi,
Okay .. .also nochmal .. .hab mich wahrscheinlich nicht richtig ausgedrückt bzw. das Prob nicht richtig beschrieben ..
Doch.
Und deine *Fehler* bei der Umsetzung wurden dir auch bereits genannt, und noch mal eine Stelle verlinkt, wo beschrieben ist, wie man Style-Eigenschaften per JavaScript setzt.
Jetzt zeig uns also bitte langsam mal, dass du bereit bist, mitzudenken.
ich will dieses padding - diesen WERT:
document.write(PADDING);
>
> in dises div: [...]
> übergeben
>
> wie geht das???
In dem du den korrekten zuzuweisenden Wert in Stringform zusammensetzt, und ihn dann wie in SELFHTML beschrieben zuweist.
> Klar?
Schon längst.
Btw., der Hinweis auf's sinnvolle Zitieren hieß nicht, dass du gar nichts mehr zitieren (und damit auch bequem die expliziten gestellten Rückfragen umgehen) sollst.
> ich weis das is ne anfängerfrage .. aber naja .. das bin ich ja auch :D
Gut. Dann fang jetzt mal an, die vorhandenen Ressourcen und Beschreibungen zu nutzen, um etwas dazu zu lernen.
MfG ChrisB
--
“Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
Bounjoun Chris,
document.getElementById('test').paddingLeft="padding px;" funzt sowieso nicht
»padding px« ist ein genau so ungültiger Wert für padding-left/-right/-top/-bottom wie »hawaii toast« oder »trench coat«, »french connection« oder »Monsters Inc.«.
Lass mal ausgeben:
alert("padding px");
alert(padding);
Vielleicht fällt Dir ein Unterschied auf. Und wenn Du jetzt den Wert samt Einheit willst, was fehlt da noch?
mal abgesehn davon das das padding überhaupt nicht in die id (div id="test") übernommen wird ....
Wie meinen?
Adiou.
Hi,
if (navigator.appName.indexOf('Netscape') != -1) { FensterBreite = self.innerWidth } else if (navigator.appName.indexOf('Microsoft') != -1) { FensterBreite = document.body.clientWidth };
Wozu soll das eigentlich gut sein?
document.getElementById('test').paddingLeft="(padding)px;"
Abgesehen vom für eine CSS-Eigenschaft padding-left ungültigen Wert - was versprichst du dir davon, dem Element eine neue Eigenschaft namens paddingLeft zu verpassen?
Möchtest du nicht vielleicht eher eine style-Eigenschaft ändern ...?
MfG ChrisB
Hi,
if (navigator.appName.indexOf('Netscape') != -1) { FensterBreite = self.innerWidth } else if (navigator.appName.indexOf('Microsoft') != -1) { FensterBreite = document.body.clientWidth };
Wozu soll das eigentlich gut sein?
document.getElementById('test').paddingLeft="(padding)px;"
Abgesehen vom für eine CSS-Eigenschaft padding-left ungültigen Wert - was versprichst du dir davon, dem Element eine neue Eigenschaft namens paddingLeft zu verpassen?
Möchtest du nicht vielleicht eher eine style-Eigenschaft ändern ...?MfG ChrisB
nein, ich brauch das für ein anderes Problem .. hier nicht wichtig
was ich möchte ist, diesem div einen dynamischen padding-left Wert zu verpassen ... thats it!
Leider funzt das über CSS nicht ... in diesem Fall!
Also:
Die Rechnung passt (padding = (FensterBreite-breite)/2 )
und dieses padding möcht ich auf das div übergeben .. und das will nicht ;-(
greetings
Hi,
bitte zitiere sinnvoll; das, worauf du dich konkret beziehst, nicht einfach alles.
nein, ich brauch das für ein anderes Problem .. hier nicht wichtig
Auf welche meiner Rückfragen soll das jetzt die Antwort sein?
was ich möchte ist, diesem div einen dynamischen padding-left Wert zu verpassen ... thats it!
Dann mach's - du brauchst es einfach nur richtig zu machen!
Leider funzt das über CSS nicht ... in diesem Fall!
Es „funzt“, sobald du gültige JavaScript-Syntax benutzt und damit die Eigenschaft wie vorgesehen ansprichst, anstatt es mit irgendeiner selbst ausgedachten Phantasie-Syntax zu versuchen.
MfG ChrisB
@@Chris:
nuqneH
Wozu soll das eigentlich gut sein?
Die wichtigste Frage lässt du unbeantwortet?
nein, ich brauch das für ein anderes Problem .. hier nicht wichtig
Oder sollte das die Antwort darauf gewesen sein?
Doch, es ist wichtig. Es ist möglich, dass du mit JavaScript auf dem Holzweg bist und sich dein eigentliches(!) Problem mit CSS lösen lässt.
was ich möchte ist, diesem div einen dynamischen padding-left Wert zu verpassen ... thats it!
Also nochmal: Wozu soll das eigentlich gut sein?
Qapla'
Hi
if (navigator.appName.indexOf('Netscape') != -1) { FensterBreite = self.innerWidth } else if (navigator.appName.indexOf('Microsoft') != -1) { FensterBreite = document.body.clientWidth };
var breite = 500; // Bildbreite
padding = (FensterBreite-breite)/2
document.write(padding);
Wozu schreibst du hier das document.write(padding);?
Was möchtest du damit erzielen?
Zudem hast du hinter der Deklaration der Variablen padding das Semikolon vergessen.
> ---> ab hier das problem:
> ~~~javascript
document.getElementById('test').paddingLeft="(padding)px;"
>
Ein Element kann keine Eigenschaft paddingLeft haben.
Richtig müsste es heißen:
document.getElementById('test').style.paddingLeft= padding + "px;"
Also das style muss noch eingefügt werden.
Und dann schau dir mal an, wie ich der Eigenschaft den Wert übergebe und wie du es getan hast.
Gruß Sascha
@@Sascha:
nuqneH
var breite = 500; // Bildbreite padding = (FensterBreite-breite)/2
Zudem hast du hinter der Deklaration der Variablen padding das Semikolon vergessen.
Die Variable wird in der ersten Zeile deklariert.
Das Semikolon ist in JavaScript nicht erforderlich. Dennoch ist es best practice, es zu setzen.
Ein Element kann keine Eigenschaft paddingLeft haben.
Du meinst ein Objekt, nicht ein Element.
Und jedes Objekt kann eine Eigenschaft paddingLeft haben. Sie wirkt sich allerdings nicht auf die Darstellung im Viewport aus.
Qapla'
Hi Folks,
Das Semikolon ist in JavaScript nicht erforderlich. Dennoch ist es best practice, es zu setzen.
Das wollte ich damit ausdrücken, da es in einigen Zeilen gesetzt wird und in anderen nicht. Dann lieber gleich richtig machen!
Ein Element kann keine Eigenschaft paddingLeft haben.
Du meinst ein Objekt, nicht ein Element.
Sorry, mein Fehler!
Und jedes Objekt kann eine Eigenschaft paddingLeft haben. Sie wirkt sich allerdings nicht auf die Darstellung im Viewport aus.
Qapla'
Okay...ich gebe mich geschlagen :)
Wollte auch nur darauf hinweisen, dass er mit dieser "unsinnigen" Zuweisung nichts erreichen wird, zumindest nicht das, was er möchte.
Gruß Sascha