Ir para conteúdo

POWERED BY:

Arquivado

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

Henrique Barcelos

[Resolvido] Problemas com o metodo style

Recommended Posts

Como js não é minha especialidade, não sei se estou fazendo alguma coisa errada:

 

function mudarEstilo(){
	var links = document.getElementsByTagName("a");
	for (var i = 0; i < links.length; i++) {
		if (links[i].className.match("link_textos")) {
			links[i].onclick = function(){
				links[i].style.color == "#000000"
			}
		}
	}
}

se alguém puder dar uma luz eu agradeço ^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

quando você usa "==" significa q você ta comparando,

quando você usa "=" você atribui valor a ação da esquerda.

 

Testa aee:

function mudarEstilo(){
	var links = document.getElementsByTagName("a");
	for (var i = 0; i < links.length; i++) {
		if (links[i].className.match("link_textos")) {
			links[i].onclick = function(){
				links[i].style.color = "#000000"
			}
		}
	}
}

 

Absss

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente esse aqui então

 

function mudarEstilo(){

	var links = document.getElementsByTagName("a");
	for (var i = 0; i < links.length; i++) 
	{	
		if (links[i].className.match("link_textos")) 
		{
				   links[i].onclick = function()
		  {			
			this.style.color="#000000";
				  }
		}
	}
}

O "this" que eu coloquei ali, significa q ele vai pegar o elemento q foi clicado e tomar ele como referencia, ele no caso não encherga as variáveis do for, só enchergaria variáveis "globais" (variáveis declaradas antes de ser inscrita a função com "var variavel = 0", porém todos os links fariam referência a mesma variável e não serveria pro seu caso.

 

Não sei se expliquei muito bem, é mais ou menos isso ae, qualquer coisa é só falar.

 

 

absss

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw a ajuda ae Cartucho + eu consegui fazer uma funcao aki que funciona no FF e no IE8 beta 2

 

soh pra não no IE6 nem no IE7 (pra variah)...

 

function mudarEstilo(id_li, id_a){
	
	var listas = document.getElementsByTagName("li");
	
	for (var i=0; i < listas.length; i++) { 
		if(listas[i].className.match("selecionado")){
			listas[i].setAttribute("class", "");
		}
	}
	
	var links = document.getElementsByTagName("a");
	
	for (var i=0; i < links.length; i++) { 
		if(links[i].className.match("selecionado")){
			links[i].setAttribute("class", "");
		}
	}
	
	var li_muda = document.getElementById(id_li);
	li_muda.setAttribute("class", "selecionado");
	var a_muda = document.getElementById(id_a);
	a_muda.setAttribute("class", "selecionado");
}

se souber onde estah o problema por favor avisa ae ^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

ao invés de você usar assim

 

listas[i].setAttribute("class", "");

use assim

listas[i].className =  "";

O ie encrenca com essa budega direto, aee sempre uso assim q funfa nos 2

 

absss

Compartilhar este post


Link para o post
Compartilhar em outros sites

tive que mudar todos os setAttribute e match

 

ficou assim:

function mudarEstilo(id_li, id_a){ //o codigo está diferente do usual por causa dos bugados IE 6 e 7
	
	var listas = document.getElementsByTagName("li");
	
	for (var i=0; i < listas.length; i++) { 
		if(listas[i].className == "selecionado"){
			listas[i].className = "";
		}
	}
	
	var links = document.getElementsByTagName("a");
	
	for (var i=0; i < links.length; i++) { 
		if(links[i].className == "selecionado"){
			links[i].className = "";
		}
	}
	
	var li_muda = document.getElementById(id_li);
	li_muda.className = "selecionado";
	var a_muda = document.getElementById(id_a);
	a_muda.className = "selecionado";
}

agora funciona...

 

vlw ae kra...

 

fico te devendo essa ^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Q nada rapaz,

 

rssss naum me deve nada, estamos aee pra ajudar , estou certo q você faria o mesmo por mim e por qualquer outro aqui

 

 

Ahh uma obs.:

você falou sobre o match, quando eu vi o seu código eu fui pesquisar sobre essa função e vi q ela trabalha com expressões regulares e tals.

 

Porém se o seu HTML estiver assim por exemplo class="selecionado lista" , esse código atual não funcionaria, porém com o match funcionaria, pq ele encontraria a string "selecionado" dentro do className.

 

Tem q tomar cuidado com isso apenas.

 

absss

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, mas nesse caso não tem problema, pq soh a funcao ali em cima que seta classes nos elementos... e essa classe é "selecionado"...

 

^_^

 

+ vlw ae... caso precise já sei ;)

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.