Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

103
Vistas
Cómo indexar coordenadas de elementos en una matriz

Estoy dibujando una matriz bidimensional con JavaScript y CSS estándar, pero me cuesta indexar las coordenadas de cada elemento.

Hay un par de problemas. Si pongo coordenadas en clase, por ejemplo,

 class="_1 _2"

Y luego use getElementsByClassName o querySelector, obtendré ambos elementos con class="_1 _2" y class="_2 _1"

Mi solución actual es usar tanto la clase como la identificación. Luego hago referencia con document.getElementsByClassName("_1")[1]

Me pregunto si tienes alguna idea/sugerencia al respecto.

Gracias

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Supongo que podrías usar atributos de datos así:

 const elements = document.querySelectorAll('[data-x="2"][data-y="1"]'); for (let el of elements) { el.classList.add('selected'); }
 table td { width: 50px; height: 50px; margin: 2px; background-color: green; color: white; } .selected { background-color: red; }
 <table> <tr> <td data-x="1" data-y="1">11</td> <td data-x="1" data-y="2">12</td> </tr> <tr> <td data-x="2" data-y="1">21</td> <td data-x="2" data-y="2">22</td> </tr> </table>

about 4 years ago · Juan Pablo Isaza Denunciar

0

¿De verdad quieres darles todas las clases con nombre?

A veces es más fácil usar la posición de los elementos (por ejemplo, nth-child(1)) en este tipo de situación, ya que se puede acceder a ellos mediante cálculos de enteros en lugar de tener que crear una cadena (o dos) para que coincidan con las clases.

He aquí un ejemplo trivial:

 function getEl(mx, row, column) { return mx.querySelector(':nth-child(' + (row - 1) * 2 + column + ')'); } const matrix = document.querySelector('#matrix'); alert(getEl(matrix, 1, 2).innerHTML);
 #matrix div:nth-child(odd) { background: green; }
 <div id="matrix"> <div>A</div> <div>B</div> <div>C</div> <div>D</div> </div>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda