Sarah Muldoon Sarah Muldoon - 25 days ago 7
Javascript Question

Why might my javascript not be working?

Only the html text above the script is showing up; the prompt never comes up. I can't figure out what is missing/wrong. Also it is for a homework assignment, I did not make up the theme/content haha.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Part 1 Problem 6</title>
</head>
<body>
<h1>JS Lab 1 Question Answers</h1>
<ol>
<li>document.write is the script that tells the browser to write certain text. document.getElementById allows you to change certain text that is already written by calling it by its id. Using document.getElementById, you can modify a large group of your code at the same time.</li>
<li>A variable holds the place of a certain value in your code, like a number or a name. An array holds multiple values</li>
<li>If there was no variable with the prompt, you would still get the prompt but nothing would be done about it. What you enter into the prompt becomes the value of the variable.</li>
<!--<script>document.write("<li>To generate a random number between 50 and 350 (not including 350) you would write var randnum (or whatever you name your variable) = (Math.floor(Math.random() * 300) + 50)</li>")</script>-->
<li>If you generate 4 different random numbers, you should have at least 4 variables.</li>
</ol>
<script>
var insultarray = new Array();
insultarray[0] = "You smell bad";
insultarray[1] = "You are ugly";
insultarray[2] = "I just really don't like you";
insultarray[3] = "You are annoying";
insultarray[4] = "Your hair looks bad";
var randnum = (Math.floor(Math.random()*5);
var x = prompt("Want to know what I think?","yes");
if (x == "yes")
{
document.write("<p>" + insultarray[randnum] + "</p>");
}
else
{
document.write("<p>Honestly, I like you.</p>");
}
</script>
</body>
</html>

Answer

You had a leading bracket in Math.floor(Math.random()*5) which I removed below and working now.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Part 1 Problem 6</title>
    </head>
    <body>
        <h1>JS Lab 1 Question Answers</h1>
        <ol>
            <li>document.write is the script that tells the browser to write certain text. document.getElementById allows you to change certain text that is already written by calling it by its id. Using document.getElementById, you can modify a large group of your code at the same time.</li>
            <li>A variable holds the place of a certain value in your code, like a number or a name. An array holds multiple values</li>
            <li>If there was no variable with the prompt, you would still get the prompt but nothing would be done about it. What you enter into the prompt becomes the value of the variable.</li>
            <!--<script>document.write("<li>To generate a random number between 50 and 350 (not including 350) you would write var randnum (or whatever you name your variable) = (Math.floor(Math.random() * 300) + 50)</li>")</script>-->
            <li>If you generate 4 different random numbers, you should have at least 4 variables.</li>
        </ol>
        <script>
            var insultarray = new Array();
            insultarray[0] = "You smell bad";
            insultarray[1] = "You are ugly";
            insultarray[2] = "I just really don't like you";
            insultarray[3] = "You are annoying";
            insultarray[4] = "Your hair looks bad";
            var randnum = Math.floor(Math.random()*5);
            var x = prompt("Want to know what I think?","yes");
            if (x == "yes")
            {
                document.write("<p>" + insultarray[randnum] + "</p>");
            }
            else
            {
                document.write("<p>Honestly, I like you.</p>");
            }
        </script>
    </body>
</html>