Ir ao conteúdo
  • Cadastre-se

Javascript Buscar Info da Tabela


Posts recomendados

Boa noite,

 

Estou a fazer um bot para o discord para um jogo e estou aqui com algumas dificuldades porque a experiencia não é a melhor..

 

É o seguinte, eu preciso que me mande na variavel "color" 3 coisas diferentes, ou melhor, me escreva na cor dependendo do innerHTML tiver "small", "medium" ou "large" escreva na variavel color "verde", "castanho" ou "vermelho".

 

Como posso fazer para essa variavel procurar uma das tres variaveis?

 

for (var i = 1, row; row = table.rows[i]; i++) {
  
    var color = 
    var player = row.cells[0].innerText;
    var status = row.cells[1].innerText;

    if (status){ msg += "  " + color + " --->  " + player + "  ---->   " + status + "     \n" }
}

 

Obrigado pela ajuda.

 

Abraço

Link para o comentário
Compartilhar em outros sites

@washalbano

 Ficou assim:

for (var i = 1, row; row = table.rows[i]; i++) {

    const colors = { small: "verde", medium: "castanho", large: "vermelho" };

    var color = row.cells[0].innerText;
    var player = row.cells[0].innerText;
    var status = row.cells[1].innerText;

    if (status){ msg += "  " + colors + "  --->  **" + player + "**  --->     **" + status + "**                  \n" }
}

 

no entanto ao enviar a mensagem pretendida, na cor aparece [object Object] 

 

o innertext da color é igual ao do player

 

Cumprimentos

Link para o comentário
Compartilhar em outros sites

@washalbano coloquei da forma que disse sem resultado, aparece sempre o valor como "undefined"

 

for (var i = 1, row; row = table.rows[i]; i++) {

    const colors = { small: "verde", medium: "castanho", large: "vermelho" };

    var color = row.cells[0].innerText;
    var player = row.cells[0].innerText;
    var status = row.cells[1].innerText;

    if (status){ msg += "  " + colors[color] + "  --->  **" + player + "**  --->     **" + status + "**                  \n" }
}

 

 

E na pagina atual ate tem o valor large:

image.png.f79132a0078827925046c8358162f716.png

 

Cumprimentos

Link para o comentário
Compartilhar em outros sites

É que se a variável color, não tiver valor ou seu valor for inválido, vai dar erro.

Como seu exemplo não é testável, nem verificável, escrevi um trecho testável e verificável pro sr. testar, verificar e comprovar que com valores válidos, funciona perfeitamente:

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
<main>
  <table border="1">
    <tbody>
    <tr>
      <td>small</td>
      <td>Player 1 - row 1 - cell2</td>
      <td class="message-receiver"></td>
    </tr>
    <tr>
      <td>medium</td>
      <td>Player 2 - row 2 - cell2</td>
      <td class="message-receiver"></td>
    </tr>
    <tr>
      <td>large</td>
      <td>Player 3 - row 3 - cell2</td>
      <td class="message-receiver"></td>
    </tr>
    <tr>
      <td>valor inválido</td>
      <td>Player 4 - row 4 - cell2</td>
      <td class="message-receiver"></td>
    </tr>
    </tbody>
  </table>
</main>
</body>
<script>
    const table = document.querySelector('table');

    const colors = {small: "verde", medium: "castanho", large: "vermelho"};

    for (const row of table.rows) {

        const color = row.cells[0].innerText;
        const player = row.cells[1].innerText;
        const messagesReceiver = row.cells[2];

        messagesReceiver.innerText = `${colors[color]} --->  ** ${player} **  --->     **`
    }
</script>
</html>

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@washalbano certo, mas aqui a questão é que o valor "small", "medium" ou "large" vai buscar a uma imagem que tem esse valor no link, entende?

 

o exemplo testavel para o que pedi é o seguinte:

<div style="padding-top: 10px; clear:both">
                    
<div id="commands_outgoings" class="commands-container" data-type="towards_village" data-village="15342" data-commands="2">

    <table class="vis" style="width:100%">
        <tbody><tr>
            <th width="52%">
                Os seus comandos
                <span class="commands-command-count">
               (2)
            </span>
            </th>
            <th width="33%">Chegada</th>
            <th width="15%">Chega em</th>
        </tr>

                                                    <tr class="command-row">
                <td>
                    <span class="quickedit-out" data-id="1370924111" data-ignore-icons="1">
                    <span class="quickedit-content">
                        <a href="/game.php?village=2807&amp;screen=info_command&amp;id=1370924111&amp;type=other">
                            <span class="icon-container">
                                <span class="commandicon-ally command_hover_details" data-command-id="1370924111" data-icon-hint="Pequeno ataque (1-1000 tropas) (Comando do membro da Tribo / Amigo)" data-command-type="attack">
	<img src="https://dspt.innogamescdn.com/asset/9b87e56e/graphic/command/attack_small.png" alt="">
</span><span class="command_hover_details" data-command-id="1370924111" data-icon-hint="Com batedores" data-command-type="attack">
	<img src="https://dspt.innogamescdn.com/asset/9b87e56e/graphic/command/spy.png" alt="">
</span>
                            </span>
                            <span class="quickedit-label">
                                 Alexandre Magno
                            </span>
                        </a>

                                            </span>
                </span>
                </td>

                                                        <td>amanhã às 14:27:22:<span class="grey small">001</span> horas</td>
                
                <td>
                    <span class="" data-endtime="1642429642">25:43:21</span>
                                    </td>
            </tr>
                                            <tr class="command-row">
                <td>
                    <span class="quickedit-out" data-id="408204837" data-ignore-icons="1">
                    <span class="quickedit-content">
                        <a href="/game.php?village=2807&amp;screen=info_command&amp;id=408204837&amp;type=other">
                            <span class="icon-container">
                                <span class="command_hover_details" data-command-id="408204837" data-icon-hint="Grande ataque (5000+ tropas)" data-command-type="attack">
	<img src="https://dspt.innogamescdn.com/asset/9b87e56e/graphic/command/attack_large.png" alt="">
</span><span class="command_hover_details" data-command-id="408204837" data-icon-hint="Com batedores" data-command-type="attack">
	<img src="https://dspt.innogamescdn.com/asset/9b87e56e/graphic/command/spy.png" alt="">
</span>
                            </span>
                            <span class="quickedit-label">
                                 0184 - OneBiNine
                            </span>
                        </a>

                                                    <a class="rename-icon" href="#" title="Renomear"></a>
                                            </span>
                </span>
                </td>

                                                        <td>a 19.01. às 18:26:02:<span class="grey small">462</span> horas</td>
                
                <td>
                    <span class="" data-endtime="1642616762">77:42:01</span>
                                    </td>
            </tr>
            </tbody></table>
</div>
                </div>

 

Consegue me ajudar e testar o descrito acima?

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!