pegar todos os divs filhos

2,504 views
Skip to first unread message

thiago freitas

unread,
Nov 28, 2008, 12:26:22 PM11/28/08
to jQuery (Brasil)
tenho o seguitne codigo:

<div class="menu">
<div class="opcao" id="vploja_men"><a href="#" onclick="mostraMenu
('vloja');">Virtvs Loja</a></div>
<div class="subop1" id="vloja">Dicionario</div>
<div class="subop1" id="vloja">5</div>
<div class="subop1" id="vloja">6</div>
</div>

como faço para ocultar "hide" todas as divs com o id igual a "vloja"?

Caio Gondim

unread,
Nov 28, 2008, 12:30:37 PM11/28/08
to jque...@googlegroups.com
Seu codigo HTML está errado, o atributo ID é único. Os elementos devem possuir id's de nomes diferentes.
para agrupar vários elementos, use class.



Caio Gondim

Intertech

T: +55.98.8111 1221
F: +55.98.3235 9007
E: caio....@gmail.com
http://www.caiogondim.com
http://www.macaxera.com
Contact Me: LinkedinFacebookdel.icio.usLast.fm

Pablo

unread,
Nov 28, 2008, 12:36:18 PM11/28/08
to jque...@googlegroups.com
$("#vloja").each(function(){ $(this).hide(); });

Diogo Roldão

unread,
Nov 28, 2008, 12:41:13 PM11/28/08
to jque...@googlegroups.com
pra vc pegar todos DIVs filho, o selector é assim:
 
$("#vploja_men div");
 
e da mesma forma como o Caio Gondim citou, vc NAO DEVE informar o mesmo ID para varios objetos, ID = identificador, o que identifica CADA objeto, entao ele nao pode se repetir. o atributo NAME até pode, pois ele pode ser agrupado como um array após o submit do form.
 
[ ]'s...
Diogo
 

ricardobeat

unread,
Nov 29, 2008, 1:36:06 PM11/29/08
to jQuery (Brasil)
$('#vploja_men div') pega todos os descendentes, não só os filhos. E
os <div>s ali não são filhos do vploja_men. Teria que ser

$('.menu > div') ou $('.menu').children('div')

ou $('#vploja_men').siblings('div') //nao inclui ele proprio

O atributo NAME só existe em campos de formulário, não em DIVs. O
melhor é usar classes mesmo, até porque é mais fácil o seletor.

Se há outros DIVs com a classe 'menu', o mais fácil é dar a classe
direto pra ele. Assim tu padroniza o HTML pra todos os menus:

<div class="menu vloja">
<div class="opcao"><a href="#">Virtvs Loja</a></div>
<div class="subop1">Dicionario</div>
<div class="subop1">5</div>
<div class="subop1">6</div>
</div>

$('.menu.vloja .subop1').hide(); // nao precisa do loop/each, o hide()
se aplica a todos os elementos
$('.menu.vloja .opcao').click(function(){
mostraMenu('vloja'); // $(this).siblings('.subop1').show() ?
});

- ricardo

Diogo Roldão

unread,
Dec 1, 2008, 9:11:51 AM12/1/08
to jque...@googlegroups.com
como ele só tinha 1 nivel de DIVs, eu dei um ex que se adequeva ao caso do cara. Mas sua explicação foi ótima! mto completa!
agora completando vc, sobres os atributos NAME, o FIELDSET é o unico item de formulario que nao possui NAME, todos demais possuem ... :D
 
vamos todos nos completando que no final teremos uma grande solução!
[ ]'s...
Diogo

 
2008/11/29 ricardobeat <ricar...@gmail.com>
Reply all
Reply to author
Forward
0 new messages