Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Associando arrays


hitech

Pergunta

Tenho o seguinte código, contendo 2 arrays. O que quero fazer é que quando clique em um item do array "portais" mostre um alerta com seu slogan, que está no array "desc", mas quando clico, mostra sempre e somente o último item do array "desc". Como faço para identificar qual item foi clicado e buscar seu correspondente no outro array?

Obrigado,

Hélcio

<html>

<head>
  <title></title>
<script>
    function portal()
    {
        portais=new Array()
            portais[0]='Terra';
            portais[1]='UOL';
            portais[2]='IG';

        desc=new Array()
            desc[0]='Portal Terra';
            desc[1]='O melhor conteúdo';
            desc[2]='O seu provedor de Internet';

        for (i=0;i<portais.length;i++)
        {
            newPortais=document.createElement('div');
            newPortais.id=i;
            newPortais.innerHTML=portais[i];
            divPortais.appendChild(newPortais);
        }
    }

    function showDesc()
    {
        alert(desc[newPortais.id]);
    }
  </script>
</head>

<body onload=portal()>
    <div id='divPortais' onclick=showDesc()></div>
</body>

</html>

Editado por fercosmig
Utilize as tags de código. Facilita a visualização.
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

É que a variável newPortais vai estar carregando a última informação depois do for. Então a função que está usando não vai funcionar para as demais.

você tem que fazer assim no for:

for (i=0;i<portais.length;i++)
        {
            newPortais=document.createElement('div');
            newPortais.id=i;
            newPortais.innerHTML=portais[i];
            newPortais.onclick=function(){alert(desc[this.id])} // Aqui mostra as descrições.
            divPortais.appendChild(newPortais);
        }

Entendeu? No final do "for" a varíavel newPortais vai estar carregando a última informação gravada, então ela vai estar carregando a informação do último div criado, se você usa a função "showDesc()" a função vai mostrar no alert o valor da variável newPortais.id, que vai ser "2".

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...