n'abend,
kann mir mal jemand sagen woran das liegt bin schon total am verzweifeln.
(a) parseInt(p);
hat keinen Effekt auf p, folgendes hingegen schon: p = parseInt(p);
(b) benutzt document.write()
- dir ist bewusst, dass diese Funktion nur bei einem aktuell ladenden Dokument von Nutzen ist (und wie gewünscht etwas _in_ das Dokument schreibt)? In allen anderen Fällen überschreibt document.write() das aktuelle Dokument mit seinem Inhalt.
(c) sieht das so aus, als würdest du deine Funktion aufrufen, wenn dein Dokuemtn noch gar nicht geladen ist. Woher willst du dann wissen, dass das Objekt mit der ID "p100" existiert? kannst du gar nicht? richtig.
(d) solltest du wie in [c] beschrieben nicht darauf warten, dass dein Dokument mit all seinen Elementen geladen ist, ist auch nicht sichergestellt, dass deine Elemente beim Ausführen deines Scripts auch tatsächlich vorhanden sind. Abhilfe schafft hier der onload-handler, z.B. so:
window.onload = function()
{
deineFunktion('auch','mit','paranetern');
};
(e) warzn übergibst du va als String, wenn du doch eigentlich in den meisten Fällen eine Zahl erwartest? Und wieso mixt du das so (ohne erkennbaren Grund) durcheinander?
(f) prüfe grundsätzlich jedes Objekt, bevor du es benutzt. Z.B. so:
var xyz = document.getElementById('EinElement');
if( !xzy )
alert( 'Objekt "EinElement" konnte nicht gefunden werden' );
else
xyz.focus();
(g) arbeitest du da mit sehr viel redundatem Gedöns. Überlege, wie du dir das Kapseln mancher Funktionalität in Funktionen zu Nütze machen kannst. Z.B. so:
// statt dem folgenden kram:
document.getElementById('foo').innerHTML = '<strong>1</strong>';
document.getElementById('bar').innerHTML = '<strong>2</strong>';
document.getElementById('baz').innerHTML = '<strong>3</strong>';
document.getElementById('blubb').innerHTML = '<strong>4</strong>';
// würde man intelenterweise etwas ähnlich dem folgenden basteln:
function setInnerHTML( elementID, number )
{
var obj = document.getElementById( elementID );
if( !obj )
return false;
obj.innerHTML = '<strong>' + number + '</strong>';
return true;
}
setInnerHTML( 'foo', 1 );
setInnerHTML( 'bar', 2 );
setInnerHTML( 'baz', 3 );
setInnerHTML( 'blubb', 4 );
weiterhin schönen abend...
Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|