Ir para conteúdo

POWERED BY:

Arquivado

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

kelvim

[Resolvido] usar this

Recommended Posts

oal pessoal .. gostaria de uma explicação com a função this..

ela serve para "pegar" o no q foi selecionado(o objeto q chamou a função pelo onclik)certo???

 

function chamar()
{
	var selecinado = this;

	var nofilho = selecionado.firstChild;
	var local = nofilho.nodeValue;
	alert(local);

}

se o onclick esta em um elemento P logo era pra ser exibido no alert o texto deste elemento...

so q aparece a mensagem..

[object window]

 

o q seria isso??

 

grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem um erro de digitação aí. Você declarou selecionado. ^_^

 

Assim:

function chamar(){
	var selecionado = this;
	var nofilho = selecionado.firstChild;
	var local = nofilho.nodeValue;
	alert(local);
}

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

se o onclick esta em um elemento P logo era pra ser exibido no alert o texto deste elemento...

so q aparece a mensagem: [object window]

o q seria isso??

A palavra-chave this refere-se ao objeto ao qual está atrelada a função via um evento qualquer.

Se a função não está atrelada especificamente a um objeto ela se refere ao objeto global [object window].

No seu caso, provavelmente você atrelou a função ao parágrafo usando um evento inline, ou seja, assim:

<p id="para" onclick="chamar()">Texto</p>

Isto não vai funcionar porque a função está sendo chamada a partir de um click no parágrafo, mas não tem como

reconhecer o objeto que a chama (o parágrafo) e assumirá o objeto global [object window].

Se você fizer:

var para = getElementById("para");
para.onclick = chamar;

Estará criando uma cópia da função para atrelar ao evento onclick no parágrafo e agora sim o

alerta será o texto do parágrafo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal a explicação do Maujor. ^_^

 

Bem, de qualquer forma, se quiser fazer com onclick inline, ou seja, onclick como atributo da tag, pode fazer assim:

 

JavaScript:

function chamar(elem){
	var selecionado = elem;
        var nofilho = selecionado.firstChild;
        var local = nofilho.nodeValue;
        alert(local);

}
HTML:

<p onclick="chamar(this)">Texto aqui</p>
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, de qualquer forma, se quiser fazer com onclick inline, ou seja, onclick como atributo da tag, pode fazer assim:

Funciona sim.

Mas, evite usar atributos JavaScript na marcação HTML. Prefira:

ele.onclick = funcao;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uhum... Eu também sou bem mais a favor de JavaScript fora da marcação HTML. Acho mais organizado. Mas só quis mostrar para ele como fazer por questões de aprendizados.

 

Mas fica aí a dica, tente sempre separar as coisas. ;)

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

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.