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

alguma coisa errada com array


vini_loock

Pergunta

Olá.

Estou tentando criar um slide show, mas não to conseguindo gravar um array com as informações necessárias:

<html>
    <head>
        <style type="text/css">
            *{margin: 0px; padding: 0px;}
            ul{width: 200px; position: absolute; left: 50%; margin: 0 0 0 -100px;}
                ul li{background-color: #F4F4F4; border: 1px solid #CCCCCC; border-radius: 4px; width: 200px; float: left;}
                    ul li #image{width: 180px; float: left; margin: 10px;}
                    ul li #legenda{width: 180px; floa: left; margin: 10px;}
                        ul li #legenda p{text-align: center;}
        </style>
        <script type="text/javascript" src="jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                var li = document.getElementById('lightbox').getElementsByTagName('li');
                var total = li.length;
                var atual = 0;
                var src = '';
                var legenda = new Array();
                
                for(i = 0; i < li.length; i++){
                    li[i].style.display = 'none';
                    src[i] = $('li['+i+'] #image img').attr('src');
                    legenda[i] = $('li['+i+'] #legenda p').html();
                }
                
                alert('src:'+src[atual]+'---legenda:'+legenda[atual]);
            });
        </script>
    </head>
    <body>
        <ul id="lightbox">
            <li>
                <div id="image">
                    <img src="img/01.jpg" width="180" height="190" border="0"/>
                </div>
                <div id="legenda">
                    <p>Esta é a legenda da imagem</p>
                </div>
            </li>
            <li>
                <div id="image">
                    <img src="img/02.jpg" width="180" height="190" border="0"/>
                </div>
                <div id="legenda">
                    <p>Esta é a legenda da imagem</p>
                </div>
            </li>
        </ul>
        <a href="#" id="next">p</a>
    </body>
</html>
Era pra ler as ul li e gravar o src da imagem e o conteudo do p e depois me exibir em um alert: src:img/01.png---legenda:Esta é a legenda da imagem Mas exibe isso: src:undefined---legenda:null O problema está provavelmente nestas linhas:
src[i] = $('li['+i+'] #image img').attr('src');
                    legenda[i] = $('li['+i+'] #legenda p').html();

Tentei em js puro, mas não deu ai tentei com jquery e num mudo nada.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

i aew vini_loock, bom não entende muito bem o que está tentando fazer, mas tenta mais ou menos assim:

$(document).ready(function(){
                var li = $("#lightbox li");
        var legenda = new Array();
        var src = new Array();
        var atual = 0;

        li.each(function(i){
            $(this).css("display","none");
            src[i] = $(this).find( "#image img:eq(0)" ).attr("src");
            legenda[i] = $(this).find( "#legenda p:eq(0)" ).text();
        });


                alert('src:'+src[atual]+'\n\nlegenda:'+legenda[atual]);
            });
em js puro fica assim:
window.onload = function(){
                var li = document.getElementById('lightbox').getElementsByTagName('li');
                var atual = 0;
                var src = new Array();
                var legenda = new Array();
                
                for(i = 0; i < li.length; i++){
                    li[i].style.display = 'none';
                    src[i] = li[i].getElementsByTagName("img")[0].getAttribute("src");
                    legenda[i] = li[i].getElementsByTagName("p")[0].innerHTML;
                }
                
                alert('src:'+src[atual]+'\n\nlegenda:'+legenda[atual]);
            }

espero que ajude, abraço!

Editado por Romerito
Link para o comentário
Compartilhar em outros sites

  • 0

Hm..

Mas eu preciso pegar apenas a primeira imagem de dentro da div#image e o primeiro p da div#legenda, pode haver outras, mas o que me interessa será sempre a primeira.

Pelo meu conhecimento ficaria assim:

src[i] = li[i].getElementById('image').getElementsByTagName("img")[0].src;
                    legenda[i] = li[i].getElementById('legenda').getElementsByTagName("p")[0].innerHTML;

E dessa forma não funciona. O script para logo após esconder a primeira li, então para de rodar.

Editado por vini_loock
Link para o comentário
Compartilhar em outros sites

  • 0

i aew cara, bom tava olhando seu HTML, percebe que você tem elementos com ID's repetidas, isso é totalmente errado, sugiro que pesquise sobre o uso do atributo ID.

coloca um exemplo do seu código, para que possamos entender melhor o que está tentando fazer, pois pelo que coloquei daria certo!

Editado por Romerito
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...