Hice este código:
function get_coordinates(container) { var x; var y; var divs = container.getElementsByTagName('div'); Array.from(divs).forEach(div => { y += div.offsetTop+" "; x += div.offsetLeft + " "; }); const a = x + ";" + y; console.log(divs); return x+";"+y; }este es el registro de la consola:
Colección HTML(10) [div#selector_1.selector, div#selector_2.selector, div#selector_3.selector, div#selector_4.selector, div#selector_5.selector, div#selector_6.selector, div#selector_7.selector, div#selector_8 .selector, div#selector_9.selector, div#selector_10.selector, selector_1: div#selector_1.selector, selector_2: div#selector_2.selector, selector_3: div#selector_3.selector, selector_4: div#selector_4.selector, selector_5: div #selector_5.selector, …]
y este el regreso:
indefinido0 0 0 0 0 0 0 0 0 0 ;indefinido0 0 0 0 0 0 0 0 0 0
No entiendo por qué me quedo indefinido al comienzo de ambos.
Como Musa aconsejó en un comentario anterior, no inicializa x e y , por lo que básicamente lo que está tratando de hacer es lo siguiente:
y += div.offsetTop + " "; x += div.offsetLeft + " ";Eso se traduce en
undefined += div.offsetTop + " "; undefined += div.offsetLeft + " "; En la parte superior debe definir que x e y son cadenas, por ejemplo:
let x = ""; let y = ""; Además, sugeriría usar let y const en lugar de var , es 2022, por lo que ya no es necesario usar var .