PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Javascript createElement("div")



Dark
25.05.2010, 00:04
ich habe hier versucht divs zu erstellen und sie in ein array zu speichern allerding werden einfach keine divs generiert.



evtl liegts daran, das ich schon ne stunde auf den code starre und einfach nicht mehr blicke.


function makeDIV(){
VarArray = new Array(maxNum);

while(Num != maxNum){
VarArray[Num] = document.createElement("div");

VarArray[Num].setAttribute("id", "divo0");

VarArray[Num].setAttribute("style", "width:50px; heigth:50px; position:absolute; background-color :#000000;");


//var interval = setInterval("divtestactio(VarArray[Num],20)",1);
alert(document.getElementById("divo0"));
Num++;
}
}

maxNum = 20;
Num = 0;



<html>
<head>
<link href="div_css.css" rel="stylesheet" type="text/css">
<script language="JavaScript">
var I = 0;
var X = 0;
var XX = 0.005;
var II = -0.0000005;
var sini = 0;
var cosi = 0;
var Num = 0;
var maxNum = 20;
var intNum = 0;
var TestNumber = 0;

function divtestactio(divtowork , number) {



var divtoi = document.getElementById(divo0);
cosi = Math.cos(I * number * 500) * (10 * X + 100) +300;
sini = Math.sin(I * number * 500) * (10 * X + 100) +300;

divtoi.style.left = cosi + "px";
divtoi.style.top = sini + "px";
I = I + II;
X = X + XX;
if(I >= 4){
II = II * -1;

}
if(Math.abs(X) >= 3){
XX = XX * -1;
}
}

function makeDIV(){
VarArray = new Array(maxNum);

while(Num != maxNum){
VarArray[Num] = document.createElement("div");

VarArray[Num].setAttribute("id", "divo0");

VarArray[Num].setAttribute("style", "width:50px; heigth:50px; position:absolute; background-color :#000000;");


//var interval = setInterval("divtestactio(VarArray[Num],20)",1);
alert(document.getElementById("divo0"));
Num++;
}
}



//DEVS
function test(){
TestNumber++;
alert("Test" + TestNumber);
}
//DEVS
</script>
</head>
<body>

<script language="JavaScript">
makeDIV();
</script>

</body>
</html>

LoC
25.05.2010, 00:52
Ich blicke bei deinem Code leider nicht so ganz durch - dafür ist der zu unsauber. Was soll das eigentlich machen?

Ein paar Tipps bezüglich sauberem JavaScript:
- Es heißt "<script type="text/javascript">"
- Man kann "window.onload" benutzen um eine Funktion beim Aufruf der Seite auszuführen - das braucht nicht in den Body.
- IDs sollen eindeutig sein - also nicht die selbe an alle DIV Elemente vergeben werden
- "document.getElementById()" gibt keinen String zurück, warum also die Verwendung in einem Alert Fenster?

Dark
25.05.2010, 14:45
Ich blicke bei deinem Code leider nicht so ganz durch - dafür ist der zu unsauber. Was soll das eigentlich machen?

Ein paar Tipps bezüglich sauberem JavaScript:
- Es heißt "<script type="text/javascript">"
- Man kann "window.onload" benutzen um eine Funktion beim Aufruf der Seite auszuführen - das braucht nicht in den Body.
- IDs sollen eindeutig sein - also nicht die selbe an alle DIV Elemente vergeben werden
- "document.getElementById()" gibt keinen String zurück, warum also die Verwendung in einem Alert Fenster?

1. sry habe das so aus einem buch aber danke
2. das soll deshalb ne fuktion sein da es noch weiter verbaut wird
3. eigtl hatten sie nicht den selben namen aber weil bei den dynamischen div namen keine DIV erstellt wurden habe ich mal statische namen vergeben
4. ist nur zu testzwecken um zu schauen ob ein div erstellt wurde


ich versuche durch den code eine variable zahl von divs um einen punkt rotieren zu lassen als ich schon divs vorgegeben hatte funktionierte es aber als ich das ganze versucht habe dynamisch zu machen ging es halt nicht mehr.