Estoy tratando de ejecutar una función onclick
de cualquier botón con class="stopMusic"
. Recibo un error en Firebug
document.getElementByClass no es una función
Aquí está mi código:
var stopMusicExt = document.getElementByClass("stopButton");
stopButton.onclick = function() {
var ta = document.getElementByClass("stopButton");
document['player'].stopMusicExt(ta.value);
ta.value = "";
};
javascript
usuario547794
fuente
fuente
Respuestas:
Probablemente quisiste decir
document.getElementsByClassName()
(y luego tomar el primer elemento de la lista de nodos resultante):Aún puede recibir el error
sin embargo, en navegadores antiguos, en cuyo caso puede proporcionar una implementación alternativa si necesita admitir esos navegadores antiguos.
fuente
Como han dicho otros, no está utilizando el nombre de función correcto y no existe de manera universal en todos los navegadores.
Si necesita realizar una búsqueda cruzada en el navegador de cualquier elemento que no sea un elemento con una identificación
document.getElementById()
, le sugiero que obtenga una biblioteca que admita selectores CSS3 en todos los navegadores. Le ahorrará una gran cantidad de tiempo de desarrollo, pruebas y corrección de errores. Lo más fácil es usar jQuery porque está muy disponible, tiene excelente documentación, tiene acceso gratuito a CDN y tiene una excelente comunidad de personas detrás para responder preguntas. Si eso parece más de lo que necesita, puede obtener Sizzle, que es solo una biblioteca de selector (en realidad es el motor de selector dentro de jQuery y otros). Lo he usado solo en otros proyectos y es fácil, productivo y pequeño.Si desea seleccionar varios nodos a la vez, puede hacerlo de muchas maneras diferentes. Si les das a todos la misma clase, puedes hacerlo con:
y devolverá una lista de nodos que tienen ese nombre de clase.
En Sizzle, sería esto:
En jQuery, sería esto:
Tanto en Sizzle como en jQuery, puede poner varios nombres de clase en el selector de esta manera y usar selectores mucho más complicados y potentes:
fuente
Antes de saltar a cualquier verificación de error adicional, primero verifique si es
document.getElement s ByClassName () en sí.
verifique dos veces getElement sy no getElement
fuente
Debería ser
getElementsByClassName
, y nogetElementByClass
. Vea esto: https://developer.mozilla.org/en/DOM/document.getElementsByClassName .Tenga en cuenta que algunos navegadores / versiones pueden no ser compatibles con esto.
fuente
document.querySelectorAll
funciona bastante bien y le permite reducir aún más su selección.https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll
fuente
lo deletreó mal, debería ser "getElementsByClassName",
document.getElementsByClassName: devuelve una pila de nodos con más de un elemento, ya que los atributos CLASS se utilizan para asignar a múltiples objetos ...
fuente
fuente
El
getElementByClass
no existe, probablemente quieras usarlogetElementsByClassName
. Sin embargo, puede utilizar un enfoque alternativo (utilizado en plantillas angulares / vue / react ...)fuente
Si escribió este "getElementByClassName", se encontrará con este error "document.getElementByClass no es una función", así que para superar ese error simplemente escriba "getElementsByClassName". Porque debería ser Elementos, no Elemento.
fuente