---
id: 62b46e3a8d4be31be5af793d
title: Step 30
challengeType: 0
dashedName: step-30
---

# --description--

Ci siamo imbattuti in un piccolo problema. Stai cercando di fare una richiesta per un elemento button, ma il tag `script` si trova nell'`head` del documento HTML. Questo vuol dire che il codice viene eseguito prima che il browser abbia terminato di leggere l'HTML e `document.querySelector()` non vedrà il button - perché il browser non l'ha ancora processato.

Per rimediare, sposta l'elemento `script` fuori dall'elemento `head` e posizionalo alla fine dell'elemento `body` (appena prima del tag di chiusura `</body>`.)

# --hints--

L'elemento `script` non dovrebbe essere all'interno dell'elemento `head`.

```js
const script = document.querySelector('script[data-src$="script.js"]');
assert.notEqual(script.parentElement.tagName, "HEAD");
```

L'elemento `script` dovrebbe trovarsi alla fine dell'elemento `body`.

```js
const script = document.querySelector('script[data-src$="script.js"]');
assert.equal(script.previousElementSibling.tagName, "DIV");
// When building the test frame, the runner script is always inserted after user
// code. This means the learner's script should be the penultimate element in 
// the body.
assert.equal(script.nextElementSibling.id, "fcc-test-runner");
assert.equal(script.parentElement.tagName, "BODY");
```

# --seed--

## --seed-contents--

```html
<!DOCTYPE html>
<html lang="en">
--fcc-editable-region--
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="./styles.css">
    <title>RPG - Dragon Repeller</title>
    <script src="./script.js"></script>
</head>
<body>
    <div id="game">
        <div id="stats">
            <span class="stat">XP: <strong><span id="xpText">0</span></strong></span>
            <span class="stat">Health: <strong><span id="healthText">100</span></strong></span>
            <span class="stat">Gold: <strong><span id="goldText">50</span></strong></span>
        </div>
        <div id="controls">
            <button id="button1">Go to store</button>
            <button id="button2">Go to cave</button>
            <button id="button3">Fight dragon</button>
        </div>
        <div id="monsterStats">
            <span class="stat">Monster Name: <strong><span id="monsterName"></span></strong></span>
            <span class="stat">Health: <strong><span id="monsterHealth"></span></strong></span>
        </div>
        <div id="text">
            Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
        </div>
    </div>

</body>
--fcc-editable-region--
</html>
```

```css
body {
    background-color: darkblue;
}

#text {
    background-color: black;
    color: white;
    padding: 10px;
}

#game {
    max-width: 500px;
    max-height: 400px;
    background-color: lightgray;
    color: white;
    margin: 0 auto;
    padding: 10px;
}

#controls, #stats {
    border: 1px solid black;
    padding: 5px;
    color: black;
}

#monsterStats {
    display: none;
    border: 1px solid black;
    padding: 5px;
    color: white;
    background-color: red;
}

.stat {
    padding-right: 10px;
}
```

```js
let xp = 0;
let health = 100;
let gold = 50;
let currentWeapon = 0;
let fighting;
let monsterHealth;
let inventory = ["stick"];

let button1 = document.querySelector("#button1");
```
