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

JS removendo e inserindo class dentro do span

Pessoas boa noite, tranquilo ai? estou com uma dificuldade com meu js e adoraria uma ajuda de alguem que possa me ajudar :)

tenho esse js

<script>
            $(document).ready(function () {
                $("span").each(function () {
                    if ($(this).text() === "Vitória") {
                        //limpa class anterior
                        $(this).removeAttr('class');
                        //adiciona class desejada 
                        $(this).addClass('label label-success');
                    } else if ($(this).text() === "Derrota") {
                        //limpa class anterior
                        $(this).removeAttr('class');
                        //adiciona class desejada 
                        $(this).addClass('label label-danger');
                    }
                });
            });
        </script>

que deveria alterar os meus labels entre vitórias e derrotas, conforme código abaixo,

<tbody>
                                            <c:forEach items="${listaResultados}" var="listaResultados">
                                                <tr>
                                                    <td style="display:none;">${listaResultados.idResultados}</td>
                                                    <td>${listaResultados.jogadorTemp}</td>
                                                    <td>${listaResultados.placar1}</td>
                                                    <td>${listaResultados.placar2}</td>
                                                    <td>${listaResultados.oponenteTemp}</td>
                                                    <td>${listaResultados.momento}</td>
                                                    <td>${listaResultados.modalidadeTemp}</td>
                                                    <td><span class='label label-success'>${listaResultados.quadra}</span></td>
                                                    <td><span class='label label-success'>${listaResultados.statusResultados}</span></td>
                                                    <td><a href='carregaResultado?idResultados=${listaResultados.idResultados}'><i class="fa fa-pencil"></i></a></td>
                                                    <td><a onclick="deletaResultado(${listaResultados.idResultados})"><i class="fa fa-trash-o"></i></a></td>
                                                </tr>
                                            </c:forEach>
                                        </tbody>

ele não altera os labels e eles carregam sempre como success, se alguém conseguir ver algo que eu não vi.

2 respostas

sugiro a utilização do atributo data-vitoria, onde ele receberá um código de vitória (S/N) e fazer a formatação de forma mais simples (evitando problemas de validação por texto) por exemplo:

<td><span class='label label-success' data-vitoria="S">${listaResultados.quadra}</span></td>

seu jquery ficaria:

$('span.alert[data-vitoria="S"]').each(function(){
$(this).addClass('alert-success');
});

$('span.alert[data-vitoria="N"]').each(function(){
$(this).addClass('alert-danger');
});
solução!

Cara, acabei de ver o seguinte texto em outro fórum da alura para solução de outro erro "Para que funcione corretamente, no seu HTML você deve importar primeiro o jQuery e depois o seu script"

resolvido!!!!

Ainda assim obrigado Paulo Vitor

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software