Jump to content

elementos dentro de elementos


CiberSkull
 Share

Recommended Posts

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.

Link to comment
Share on other sites

Thanks 😄

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


<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 😛

Thanks again

Link to comment
Share on other 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! 🙂

"Pensa positivo: tudo pode piorar"

Link to comment
Share on other 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

Link to comment
Share on other 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();
});
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.