Estou praticando um pouco e só que esbarrei em um probleminha aqui. Estou tentando pegar o valor de value só que não estou conseguindo dá a mensagem:
formAlunos.js:25 Uncaught TypeError: Cannot read property 'value' of undefined
at obterAlunoForm (formAlunos.js:25)
let alunos = document.querySelector(".aluno")
for(let i = 0; i < alunos.length; i++) {
aluno = alunos[i]
let nota1Td = document.querySelector(".info-nota1")
let nota1 = nota1Td.textContent
let nota2Td = document.querySelector(".info-nota2")
let nota2 = nota2Td.textContent
let nota3Td = document.querySelector(".info-nota3")
let nota3 = nota3Td.textContent
let nota4Td = document.querySelector(".info-nota4")
let nota4 = nota4Td.textContent
let mediaTd = document.querySelector(".info-media")
//let pontosTd = document.querySelector(".info-pontos")
let notaEhValida = validaNotas(nota1, nota2, nota3, nota4)
if(!notaEhValida) {
mediaTd.textContent = "Nota(s) Inválidas"
alunos.classList.add("aluno-invalido")
}
}
function calculaMedia(media) {
let mediaAlunos = 0
let nota1 = 0
let nota2 = 0
let nota3 = 0
let nota4 = 0
mediaAlunos = (nota1 + nota2 + nota3 + nota4) / 4
return media.toFixed(2)
}
let adicionar_alunos = document.querySelector("#adicionar-aluno")
adicionar_alunos.addEventListener("click", function(event) {
event.preventDefault()
var form = document.querySelector("#formAdicionarAluno")
var aluno = obterAlunoForm(form)
var alunoTr = montaAlunoTr(aluno)
var tabela = document.querySelector("#tabela-alunos")
tabela.appendChild(alunoTr)
console.log(alunoTr)
form.reset()
})
function obterAlunoForm(form) {
var aluno = {
nome: formAdicionarAluno.nome.value,
nota1: formAdicionarAluno.nota1.value,
nota2: formAdicionarAluno.nota2.value,
nota3: formAdicionarAluno.nota3.value,
nota4: formAdicionarAluno.nota4.value,
media: calculaMedia(form.media.value),
pontos: formAdicionarAluno.pontos.value,
}
return aluno
}
function montaAlunoTr(aluno) {
var alunoTr = document.createElement("tr")
alunoTr.classList.add("aluno")
alunoTr.appendChild(montaAlunoTd(aluno.nome, "info-nome"))
alunoTr.appendChild(montaAlunoTd(aluno.nota1, "info-nota1"))
alunoTr.appendChild(montaAlunoTd(aluno.nota2, "info-nota2"))
alunoTr.appendChild(montaAlunoTd(aluno.nota3, "info-nota3"))
alunoTr.appendChild(montaAlunoTd(aluno.nota4, "info-nota4"))
alunoTr.appendChild(montaAlunoTd(aluno.media, "info-media"))
alunoTr.appendChild(montaAlunoTd(aluno.pontos, "info-pontos"))
return alunoTr
}
function montaAlunoTd(dados, classe) {
var td = document.createElement("td")
td.textContent = dados
td.classList.add(classe)
return td
}