Alguém pode me ajudar a identificar o erro?

Algoritmo

HTML5

JavaScript Web

26/08/2021



!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="adicionador.css">
<script src="adicionar.js"></script>
<title>Adicionando Números</title>
</head>
<body>
<header>
<h1>Analisador de Números</h1>
</header>

<main>
<div>
<p>Número (entre 1 & 100):
<input type="number" name="fnum" id="numero" placeholder="DE 1 à 100">
<input type="button" value="adicionar" onclick="adicionar()">
<select name="flista" id="flista" size="10"></select>
<input class="veri" type="button" value="Verificar">
</p>
</div>

<div class="res">


</div>
</main>

</body>
</html>



let num = document.querySelector(''''''''input#fnum'''''''')
let lista = document.querySelector(''''''''select#flista'''''''')
let res = document.querySelector(''''''''div.res'''''''')
let valores = []

function isNumero(n) {
if(Number(n) >= 1 && Number(n) <= 100) {
return true
} else {
return false
}
}

function inLista(n, l) {
if (l.indexOf(Number(n)) != -1) {
return true
} else {
return false
}
}

function adicionar() {

if (isNumero(num.value) && !inLista(num.value, valores)) {
valores.push(Number(num.value))
let item = document.createElement(''''''''option'''''''')
item.text = `Valor ${num.value} adicionado`
lista.appendChild(item)
} else {
window.alert(''''''''Valor inválido ou já adicionado na lista!'''''''')

}

}

OBS:. Erro encontrado através do inspecionar: Uncaught TypeError: Cannot read property ''''value'''' of null
Vanderson Santos

Vanderson Santos

Curtidas 0

Respostas

Vanderson Santos

Vanderson Santos

26/08/2021

Já corrigir essa linha colocando o ID: como ''fnum'' // mas o erro persiste.
GOSTEI 0
Tiago Kappes

Tiago Kappes

26/08/2021

Iai @Vanderson Santos, o <script src='adicionar.js'> deve ficar na area body abaixo de todas as tags, pois ele consume dados do html(os ids neste caso), apenas arquivos que não usam dados do html(como uma blibioteca por exemplo), podem ficar na area head. Espero ter ajudado.
GOSTEI 0
POSTAR