getElementsByClassName() e onchange, js puro não funciona

283 views
Skip to first unread message

Victor Hugo Marques da Fonseca

unread,
Apr 23, 2013, 8:17:03 AM4/23/13
to jque...@googlegroups.com
Alguém sabe me dizer porque se eu fizer isso não funciona:

var select = document.getElementsByClassName('select');
select.onchange = function(){ alert('Teste') };

E se eu fizer isto, funciona ?

$('.select').onchange(function(){ alert('Teste'); });

Everton Pereira

unread,
Apr 23, 2013, 8:28:54 AM4/23/13
to jque...@googlegroups.com
Não seria getElementsByTagName ao invés de className?


2013/4/23 Victor Hugo Marques da Fonseca <victorh....@gmail.com>
--
--
Grupo de jQuery Brasil.
 
REGRAS: https://docs.google.com/document/d/1VfvTDmeHTSj-L5ouZJjQQ4OkjTCU1Hr2XtPYBNGVHH4/edit
 
USE O JSBIN.COM / JSFIDDLE.NET PARA CÓDIGOS.
 
Email: jque...@googlegroups.com
Biba: jquery-br+...@googlegroups.com
Site: http://groups.google.com/group/jquery-br?hl=pt-BR
 
---
Você está recebendo esta mensagem porque se inscreveu no grupo "jQuery (Brasil)" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para jquery-br+...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 

Victor Hugo Marques da Fonseca

unread,
Apr 23, 2013, 8:30:55 AM4/23/13
to jque...@googlegroups.com
Acredito que não seja TagName pelo fato que eu nao quero pegar todos os selects da minha view, obrigado pela resposta !


2013/4/23 Everton Pereira <coffe...@gmail.com>



--
Atenciosamente,
Victor Hugo Marques
Tel.: (61)8537 - 6729

Everton Pereira

unread,
Apr 23, 2013, 10:39:56 AM4/23/13
to jque...@googlegroups.com
Achei.
A função getElementsByClassName retorna um array com todos os itens, logo precisa iterar neles e aplicar a função em cada um.

var selects = document.getElementsByClassName('select');
for(c=0;c<selects.length; c++){
    var select  = selects[c];

    select.onchange = function(){ alert('Teste') };
};

Tiago Celestino

unread,
Apr 23, 2013, 11:23:41 AM4/23/13
to jque...@googlegroups.com
@Victor, olha a definição do getElementsByClassName

Returns a set of elements which have all the given class names.

Ou seja, vai pegar todos os elementos com a classe "select". Hoje em dia é mais recomendavel usar querySelector() - https://developer.mozilla.org/en-US/docs/DOM/Document.querySelector- ou o querySelectorAll() - https://developer.mozilla.org/ru/docs/DOM/Element.querySelectorAll.

Neto Neto

unread,
Apr 23, 2013, 11:58:41 AM4/23/13
to jque...@googlegroups.com
Lembrando que para o nosso amigo IE, só funciona a partir da versão 9

Neto - Web developer
+55 81-9916.1778

Victor Hugo Marques da Fonseca

unread,
Apr 23, 2013, 12:37:57 PM4/23/13
to jque...@googlegroups.com
Beleza vlw galera


2013/4/23 Neto Neto <sputin...@gmail.com>
Reply all
Reply to author
Forward
0 new messages