Estou tentando executar uma função onclick
de qualquer botão com class="stopMusic"
. Estou recebendo um erro no Firebug
document.getElementByClass não é uma função
Aqui está o meu código:
var stopMusicExt = document.getElementByClass("stopButton");
stopButton.onclick = function() {
var ta = document.getElementByClass("stopButton");
document['player'].stopMusicExt(ta.value);
ta.value = "";
};
javascript
user547794
fonte
fonte
Respostas:
Você provavelmente quis dizer
document.getElementsByClassName()
(e, em seguida, extrair o primeiro item da lista de nós resultante):Você ainda pode receber o erro
em navegadores mais antigos, no entanto, nesse caso, você pode fornecer uma implementação de fallback se precisar oferecer suporte a esses navegadores mais antigos.
fonte
Como já foi dito, você não está usando o nome da função correto e ele não existe universalmente em todos os navegadores.
Se você precisar buscar em outro navegador, além de um elemento com um ID
document.getElementById()
, sugiro fortemente que você obtenha uma biblioteca que ofereça suporte a seletores CSS3 em todos os navegadores. Isso economizará uma quantidade enorme de tempo de desenvolvimento, testes e correção de erros. A coisa mais fácil a se fazer é usar o jQuery, porque é tão amplamente disponível, possui excelente documentação, acesso gratuito à CDN e tem uma excelente comunidade de pessoas por trás dele para responder a perguntas. Se isso parecer mais do que você precisa, você pode obter o Sizzle, que é apenas uma biblioteca de seletores (na verdade, é o mecanismo de seletores no jQuery e outros). Eu o usei sozinho em outros projetos e é fácil, produtivo e pequeno.Se você deseja selecionar vários nós de uma só vez, pode fazer isso de várias maneiras diferentes. Se você der a todos a mesma classe, poderá fazer isso com:
e retornará uma lista de nós que possuem esse nome de classe.
No Sizzle, seria o seguinte:
No jQuery, seria o seguinte:
No Sizzle e no jQuery, você pode colocar vários nomes de classe no seletor como este e usar seletores muito mais complicados e poderosos:
fonte
Antes de iniciar qualquer verificação de erro adicional, verifique primeiro se
O próprio ByClassName () do document.getElement .
verifique a sua GetElement s e não GetElement
fonte
Deveria ser
getElementsByClassName
, e nãogetElementByClass
. Veja isto - https://developer.mozilla.org/en/DOM/document.getElementsByClassName .Observe que alguns navegadores / versões podem não suportar isso.
fonte
document.querySelectorAll
funciona muito bem e permite restringir ainda mais sua seleção.https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll
fonte
você digitou errado, deve ser "getElementsByClassName",
document.getElementsByClassName - retorna uma pilha de nós com mais de um item, pois os atributos CLASS são usados para atribuir a vários objetos ...
fonte
fonte
O
getElementByClass
não existe, provavelmente você deseja usargetElementsByClassName
. No entanto, você pode usar uma abordagem alternativa (usada nos modelos angular / vue / react ...)fonte
Se você escreveu este "getElementByClassName", encontrará o erro "document.getElementByClass não é uma função". Para superar esse erro, basta escrever "getElementsByClassName". Porque deve ser elementos e não elemento.
fonte