Resulta que toString() es bastante inútil ya que JS puede convertir números en cadenas implícitamente y ese fue el problema, porque cuando lo eliminé, ¡funcionó perfectamente!
document.getElementById("g").onload = function () { // #g is the body for (let i = 0; i < $h; i++) { // $h = 2 for (let j = 0; j < $w; j++) { // $w = 5 let l = String.fromCharCode(97 + i); document.getElementById(l+(j+1)).onclick = $add; // toString() sucks balls } } };Estoy desarrollando un juego basado en la web y descubrí un problema con este código:
document.getElementById("g").onload = function () { // #g is the body for (let i = 0; i < $h; i++) { // $h = 2 for (let j = 0; j < $w; j++) { // $w = 5 let l = String.fromCharCode(97 + i); document.getElementById(l+toString(j+1)).onclick = $add; } } }; Básicamente, se supone que el código debe ejecutarse a través de elementos con un ID de a1,a2...a5,b1,b2...b5 y asignar el valor void $add al onclick de cada elemento. Por alguna extraña razón me da este error:
TypeError no detectado: no se puede acceder a la propiedad "onclick", document.getElementById(...) es nulo
He intentado tantas cosas que ni siquiera puedo enumerarlas aquí sin que parezca que lo escribió un niño de 2 años que tiene la capacidad mental de una zarzamora a medio comer.
Soy como el yogur que ha estado en mi nevera durante unos 2 meses en este idioma.
Además, para infligir un daño adicional a mi cerebro batido de proteínas, el script en el HTML se define después de las cosas en mi código.