• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

CiberSkull

elementos dentro de elementos

9 mensagens neste tópico

Viva, eu pesquisei no forum e no google mas n encontrei nada...

O que se passa é que quero fazer um parser. imaginem:


<div id="content">

<p> blah</div>
<p> blah1</div>
  <p> blah2</div>
  <p> blah3</div> 
  <p> blah4</div> 
  <p> blah5</div>

</div>

a função tem que retirar o conteudo da div e retornar um array de strings com: "blah1",blah2", etc.

Para ir a div um getelementbyid chega. O  meu problema e saber como pegar em cada <p> uma vez que estes não têm ID (e sobre isso eu não tenho controlo).

O que sera: Document.getelementebyID.???

Obrigado a todos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Thanks :D

fica  aqui a minha resolução para quem vier pesquisar ao forum :D


<script src="http://code.jquery.com/jquery-latest.js"></script> 

<script type="text/javascript"> 

$(document).ready(function(){

          var htmlstr;


          htmlstr = $("#content").html().split("\n");

          var line = new Array();
          var i ;
          var k =  htmlstr.length;
          var j = 1;
          for(i = 0 ; i<k;i++) {
               htmlstr[i] = htmlstr[i].slice(htmlstr[i].toString().indexOf(">")+1, htmlstr[i].toString().lastIndexOf("<"));

               if(htmlstr[i].toString() !=" " && htmlstr[i].toString().length >0)
                    line[j++]=htmlstr[i].toString() ;


            }

          alert(line);
});

Pode não ser a melhor solução mas funciona :P

Thanks again

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não precisavas desse código todo :D

Se quiseres uma solução mais "barata" apita.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sempre gostei de pagar pouco :)

Se não te importares, era da maneira que aprendia  :P

Thanks

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não duvido que o código que postaste funciona, mas e se por acaso a estrutura mudar? Se houver 2 <p> seguidos sem newline pelo meio, por exemplo? ou se um dos <p> tiver outro elemento dentro?

Usando o DOM, consegues atravessar a estrutura toda sem nunca teres de saber nada sobre a dita. O Mozilla Developper Center tem uma documentação muito boa sobre isso, dá uma olhadela para teres uma ideia da coisa.

Ou usa jQuery se tiveres com pressa/preguiça! :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Até não me importava de fazer dessa maneira, mas tenho prazos a cumprir e eles são apertados....

Estou a curtir JQuery mas tenho muita pouca experiência no que toca a programação web e pior ainda: não tenho tempo...

Mas  jreis, obrigado :) vou ler isso ate porque parece interessante, mas n vai puder ser em tempo útil para aquilo que preciso...

thanks

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Será algo parecido a isto.

Deves também querer meter algum tipo de verificação quando sacas o conteudo dos parágrafos para ver se estão vazios ou se têm alguma coisa escrita.

(Não testado)

var arr = new Array();

$('#content p').each(function (i) {
   arr[i] = $(this).text();
});

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

thanks yoda.pt

O meu código em comparação parece um atulho :P mas é assim q se aprende :)

Thanks to all

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora