Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

willwalker

Script para deixar hidden divs por id, mas está dando problemas.

Recommended Posts

Esse é o escript:

 

<?php $tot = mysql_query("SELECT * FROM categorias $query ORDER BY id DESC LIMIT 1"); $tol = mysql_fetch_array($tot); ?>
function hide() {
if (document.getElementById) { // DOM3 = IE5, NS6
for(x=0; x<<?=$tol['id']?>;){
x++;
document.getElementById(x).style.visibility = 'hidden';
}
}
else {
if (document.layers) { // Netscape 4
for(x=0; x<<?=$tol['id']?>;){
x++;
document.x.visibility = 'hidden';
}
}
else { // IE 4
for(x=0; x<<?=$tol['id']?>;){
x++;
document.all.x.style.visibility = 'hidden';
}
}
}
}

O que eu tentei fazer, foi deixar todos os divs com visibility hidden. Mas eu não tive uma ideia melhor de fazer isso. Ele verifica id por id. E se por acaso não forem ids sequenciais, ele dá erro e não funciona o menu. Só preciso de uma função que veja os div com id de 1 a 10000000 (Exemplo), mas que não dê erro caso os numeros não sejam sequenciais. Alguem pode me ajudar ?

 

Abraços Walker

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma maneira simples para percorrer divs é atribuir uma classe para todos os divs que serão apagados, ou seja, você percorre todos os divs do documento avaliando quais deles possuem a classe "apagar", por exemplo. Se a classe coincidir, você executa determinada tarefa.

 

Para isso iremos utilizar:

document.getElementsByTagName("div");

 

Exemplo:

<html>
<head>
<script type="text/javascript">
function apagar() {
var i;
var links = document.getElementsByTagName("div");

	for (i = 0; i<links.length; i++) {
		if(links[i].className == "meuDiv") {
			links[i].style.display = "none";
		}
	}
   
}
</script>

</head>
<body>
<div id="AAA000" class="meuDiv">Esse irá apagar!</div>
<div id="div123" class="meuDiv">Esse irá apagar!</div>
<div id="0km" class="meuDiv">Esse irá apagar!</div>
<div id="divLegal" class="meuDiv">Esse irá apagar!</div>
<div id="Palmeiras" class="classeQualquer">Esse não irá apagar!</div>
<div id="Goiás">Esse não irá apagar!</div>

<br /><br /><input type="button" value=" Apagar DIVs com classe = meuDiv " onclick="apagar()">
</body>
</html>
Perceba que o id, nesse caso, não importa para o script JS. Também não é necessário executar um loop de 10000 ciclos ou mais!

 

Editado:

Retirada de trechos desnecessários no código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

var i;
var submenu = document.className == 'sub_menu';

for (i = 0; i<submenu.length; i++) {
if(submenu[i].className == 'sub_menu') {
submenu[i].style.visibility = 'visible';
}
}

}

Eu fiz essa pequena mudança.

 

Esse é o menu:

 

<div class="coluna">
<div class="lista">
<?php $sql = mysql_query("SELECT * FROM categorias $query ORDER BY nome ASC"); while($rss = mysql_fetch_array($sql)){ ?>

<div class="menu" onmouseover="this.className='cor_menu_over'" onmouseout="this.className='cor_menu_out'">
<div class="link" onmouseover="javascript: hide(); show('<?=$rss['id']?>'); thumbs('borda_produtos','<?=$rss['img']?>');" onclick="javascript: document.location.href='detalhe_prod.php?c=<?=$rss['nome']?>';"><?=$rss['nome']?></div>
</div>

<div id="<?=$rss['id']?>" class="sub_menu">
<?php $slq = mysql_query("SELECT * FROM produtos WHERE categoria = '".$rss['nome']."'"); while($rsl = mysql_fetch_array($slq)){ ?>
<div class="sub_link" onmouseover="javascript: thumbs('borda_produtos','<?=$rsl['mini']?>');" onclick="javascript: document.location.href='detalhe_prod.php?id=<?=$rsl['id']?>';"><?=$rsl['nome']?></div>
<?php } ?>
</div>
<?php } ?>

</div>
</div>

Quando eu não faço a filtragem ele funciona perfeitamente, mas quando faço a filtragem ele não dá mais hidden O.o.

 

$query:

 

if($_GET['b'] != ""){$query = "WHERE nome LIKE '%".$_GET['b']."%'";}else{$query = "";}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.