Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro Uncaught TypeError: Cannot read property 'textContent' of null

 <input type="text" id="filtrar-email">
        <input type="text" id="filtrar-correspondente">


        <table class="striped centered">
            <thead>
                <tr class="incompletos">
                    <th>ID serviço</th>
                    <th>tipo</th>
                    <th>Situação</th>
                    <th>Equipe</th>
                    <th>Corresponente Incompleto</th>
                    <th>email</th>
                </tr>
            </thead>

            <tbody>

                <tr>
                    <td><a href="/sas/servico/acesso/68" target="_blank">68</a></td>
                    <td>Audiência como Preposto</td>
                    <td>Solicitado em sistema</td>
                    <td>Equipe 01</td>
                    <td class="info"><b style="color:#b51919;">Cadastrado ou excluído</b></td>
                    <td class="info-email"></td>
                </tr>

                <tr class="incompletos">
                    <td><a href="/sas/servico/acesso/69" target="_blank">69</a></td>
                    <td>Protocolo</td>
                    <td>Aguardando Autorização da Gerência</td>
                    <td>Equipe 01</td>
                    <td class="info">oi teste sou um teste</td>
                    <td class="info-email">testeeeeeeaaa@gmail.com</td>
                </tr>

                <tr class="incompletos">
                    <td><a href="/sas/servico/acesso/243" target="_blank">243</a></td>
                    <td>Audiência como Preposto</td>
                    <td>Serviço cancelado</td>
                    <td>Equipe 10 captação Norte e Nordeste</td>
                    <td class="info">Carlos Alberto Salles Silva Santos</td>
                    <td class="info-email">carlos.sss93@gmail.com</td>
                </tr>

            </tbody>
        </table>
    </div>
</div>

<script>
var filtro = document.querySelector("#filtrar-email");
    filtro.addEventListener("input", function(){
        console.log(this.value);
    var incompletos = document.querySelectorAll(".incompletos");
        console.log(incompletos);

    if(this.value.length > 0){
        for (var i = 0; i < incompletos.length; i++){
            var incompleto = incompletos[i];
            var tdCorrespondenteIncompletos = incompleto.querySelector(".info-email");
            var email = tdCorrespondenteIncompletos.textContent;


            var expressao = new RegExp(this.value, "i");

            if(!expressao.test(email)){
                incompleto.classList.add("remove");
            }else{
                incompleto.classList.remove("remove");
            }

        }
    }else{
        for (var i = 0; i < incompletos.length; i++){
            var incompleto = incompletos [i];
            incompleto.classList.remove("remove");
        }
    }

    });


</script>

<style>
    .remove{
        display: none;
    }
</style>
3 respostas
solução!

Olá, Vitor.

A sua primeira <tr class="incompletos"> dentro dela não tem um elemento com class info-email por isso que você está recebendo o erro: Cannot read property 'textContent' of null.

Se você colocar um console.log(tdCorrespondenteIncompletos) logo abaixo da linha que você cria a variável tdCorrespondenteIncompletos verá que o retorno será null.

Então conseguir achar o erro aqui também, eu tinha colocado a class incompletos no lugar errado.

Obrigado!!

Muito bom Vitor. Se aparecer mais dúvidas é só falar :-)