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

problema com espaçamento entre tags


Thiagonlyway

Pergunta

tenho um problema em meu script que a principio não sei resolver.

tenho um arquivo .HTML e nele contém uma tag SELECT e dentro dela há varias OPTIONS

semelhante a isto:

<select name="selectDestinatarios" id="selectDestinatarios" multiple="multiple" >

<option>teste1</option>

<option>teste2</option>

<option>teste3</option>

</select>

e uso javaScript para recuperar os childNodes ("nós filhos") do elemento(tag) SELECT

um trecho do código javaScript é este:

//------------------------------------------------------------------------------------

var options = document.getElementById("selectDestinatarios").childNodes;

// e depois eu vejo quantos elementos existem na variavel "options"

alert(options.length);

//------------------------------------------------------------------------------------

teoricamente eu receberia um "alert" dizendo que tenho 3 elementos dentro da variavel "options" (os 3 elementos OPTION)

mais eu recebo um "alert" dizendo que contém 6 elementos,

ai descobri que a culpa disto era porque havia "enters" no final das linhas e o javaScript considera eles como elementos também!

a mesma coisa acontece com "espaços em branco" entre as tags

exemplo:

<select name="selectDestinatarios" id="selectDestinatarios" multiple="multiple" > <option>teste1</option> <option>teste2</option> <option>teste3</option></select>

entre as tags OPTION há espaços em branco e o javaScript retorna eles como se fossem childNodes do elemento SELECT

e de fato são mesmo!

e ai vem meu problema:

Como recuperar somente as tags OPTION com o método "element.childNodes" do elemento SELECT?(há algum outro método?)

eu queria saber se existe uma função que eu possa recuperar somente os OPTIONs dentro do SELECT, sem os "enters e espaços em braco".

se eu fizer desta forma funciona:

<select name="selectDestinatarios" id="selectDestinatarios" multiple="multiple" ><option>teste1</option><option>teste2</option><option>teste3</option></select>

e no java script:

var options = document.getElementById("selectDestinatarios").childNodes;

alert(options.length);

ai sim o "alert" me mostra 3 elementos! (os 3 OPTIONs apenas)

mais eu gostaria de deixar meu script html estruturado,

e não gostaria de usar uma estrutura de decisão (IF-ELSE) para saber se o childNode do elemento SELECT é um "espaço em branco ou enter"(textNodes)

ou se é um elemento OPTION

porque o código em javascript precisa ser executado o mais rapido possível porque eu estou trabalhando com muitos OPTIONs dentro do SELECT,

e comparar cada um seria muito demorado.

resumindo...

há alguma maneira de conseguir recuperar somente os OPTIONs de dentro do SELECT?

sem precisar usar uma estrutura de condição para eliminar os "enters e espaços em branco"?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
&lt;script>
 var total = document.getElementById("selectDestinatarios").options.length;
 alert(total);
</script>
??
Muito Obrigado SK15 mas acho que não fui muito claro no meu problema, o "alert" foi só para demostrar que havia mais de 3 childNodes dentro do elemento SELECT além dos OPTIONs, e que eram os "enters" e "espaços em branco" que também são childNodes do SELECT (acredito que sejam textNodes) e eu queria que houvesse somente 3 childNodes (somente os OPTIONs) mais observei seu código e vi que foi falta de atenção minha, porque retirando o método .length acredito conseguir o que quero (recuperar apenas os OPTIONs dentro do SELECT):
&lt;script>
 var arrayDeOptions = document.getElementById("selectDestinatarios").options;
 alert(arrayDeOptions.length);//apenas para demonstrar que há 3 elementos dentro do array
</script>

acredito que isso resolva meu problema, muito obrigado por sua ajuda.

Link para o comentário
Compartilhar em outros sites

  • 0

Mas se no caso meu documento não fosse um HTML mais sim um XML e tentasse usar o método "element.childNodes"?

eu teria estes mesmos problemas com os espaços e ENTERs entre as tags?

já tive esse problema com java, mas e com javascript? é possível ter tambem?

perguntando apenas por curiosidade e prevensão

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,3k
    • Posts
      652,6k
×
×
  • Criar Novo...