Forum Moderators: open

Message Too Old, No Replies

Document.undefined

         

sthlmkatta

11:08 am on Apr 18, 2010 (gmt 0)

10+ Year Member



Hi!
I am working with a dice game and it needs to be done today.
Now I got this message in Firebug: document[diceName] is undefined. I dont know what I have done wrong?

Here is my code:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>T&auml;rningsspel</title>
<link rel="stylesheet" type="text/css" href="uppgift5.css" />
<script type="text/javascript" language="javascript">

var sammanlagt = new Array();
var getPoints = new Array();


var tarning1 = 1;
var tarning2 = 1;
var tarning3 = 1;



function showDice(imgNr, diceName) { // Funktion för att visa de olika tärningsbilderna

if (imgNr == 1) var imgUrl = "1.gif";
else if (imgNr == 2) var imgUrl = "2.gif";
else if (imgNr == 3) var imgUrl = "3.gif";
else if (imgNr == 4) var imgUrl = "4.gif";
else if (imgNr == 5) var imgUrl = "5.gif";
else if (imgNr == 6) var imgUrl = "6.gif";
document[diceName].src = imgUrl;

}


function randomInteger(high) {
var randNumber = Math.random();
randNumber = Math.floor(high*randNumber)+1;
return randNumber;
}



function showRandomPict(diceName) {
var imgNr = randomInteger(6);
showDice(imgNr, diceName);
return imgNr;
}



function playAll(showDice) {
tarning1 = showRandomPict(1);
tarning2 = showRandomPict(2);
tarning3 = showRandomPict(3);

var sammanlagt = 0;

if(tarning1 == tarning2 && tarning1 == tarning3){
var points = (tarning1+tarning2+tarning3)*2;
}
else if(tarning1 == tarning2){
var points = tarning1+tarning2;
}
else if(tarning2 == tarning3){
var points = tarning2+tarning3;
}
else if(tarning1 == tarning3){
var points = tarning1+tarning3;
}
else{
var points = 0;
}
document.getElementById("points").innerHTML = points;
getPoints[getPoints.length] = points;
}



function showPoints() {
var text = "";
var sammanlagt = 0;

for (var i=0; i<getPoints.length; i++) {
sammanlagt = sammanlagt + getPoints[i];
text = text + getPoints[i] +", ";
}

alert("Resultat blev: " + text + "Din poäng blev: " + sammanlagt);
}


</script>
</head>

<body bg color="#D3D5D6">

<div id="dices">

<font face ="verdana">

<h1>T&auml;rningsspel</h1>
<p>Uppgift 5 i kursen Webbdesign 15 po&auml;ng vid Linneuniversitetet av Katarina W&aring;gberg.</p>
<h3>Spela!</h3>
<p>
<img src="1.gif" name="tarning1" onclick="javascript:showRandomPict('tarning1')" />
<img src="2.gif" name="tarning2" onclick="javascript:showRandomPict('tarning2')" />
<img src="3.gif" name="tarning3" onclick="javascript:showRandomPict('tarning3')" /></p>

<p>Klicka p&aring; varje enskild t&auml;rning f&ouml;r att spela dem eller klicka p&aring; knappen nedan f&ouml;r att spela alla t&auml;rningar samtidigt. <br/>
Klickar du p&aring; "Visa resultat" visas den sammanlagda po&auml;ngen av de t&auml;rningarna du har rullat.</p>

<p><button type="button" value="playAll" onclick="playAll()">Spela alla t&auml;rningarna</button></p>



</div>

<div id="Results">

<h3>Po&auml;ng:</h3>
<p><span id="points">0</span></p>


<p><button type="button" value="getPoints" onclick="showPoints()">Visa resultatet</button></p>


<br />




</div>

</body>
</html>

daveVk

10:55 pm on Apr 18, 2010 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Think this
document[diceName].src = imgUrl;
should be
document.getElementById(diceName).src = imgUrl;

and change name= to id=

<img src="1.gif" id="tarning1" onclick="javascript:showRandomPict('tarning1')" />