Tengo un script que creará algunos enlaces dentro de las filas de la tabla y los mostrará.
$('#links').val('<class="sws_gen_links_table">' + links.join('\n')); $('#linksContainer').show();Lo que me gustaría hacer antes de que se muestren es dividirlos en 2 columnas iguales y agregarlos en el td respectivo. Algo como esto:
<table id="stylewithcss"> <tbody> <tr> <td class="This is the header of the table" colspan="2">ADD HEADER HERE</td> </tr> <tr> <td> Here goes the first part of the links. </td> <td> Here goes the second part of the links. </td> </tr> </tbody> </table>Encontré algo similar aquí, pero para ser honesto, realmente no sé cómo aplicarlo en mi caso (soy un principiante). convertir una sola columna a múltiples columnas
La solución más simple es dividirlo en 2 matrices (algo así):
para alternar:
const links = ["link one", "link two", "link three", "link four", "link five", "link six", "link seven", "link eight", "link nine"] const linksOne = [] const linksTwo = [] for (let i = 0; i < links.length; i++) { const link = links[i] if (i % 2 === 0) linksOne.push(link) else linksTwo.push(link) }por no alternar:
const links = ["link one", "link two", "link three", "link four", "link five", "link six", "link seven", "link eight", "link nine"] const mid = Math.ceil(links.length / 2) const linksOne = links.slice(0, mid) const linksTwo = links.slice(mid)Puede intentar almacenar los enlaces en una matriz, luego dividir la longitud de la matriz por 2 y mostrar la primera mitad en la primera columna y la segunda mitad en la segunda columna. Si la longitud es impar, inserte una cadena vacía en la matriz para que sea par. por ejemplo,
var links=["link1","link2","link3","link4"]; if(links.length % 2 == 1){ links.push(""); } var midpoint= links.length/2; var html='<tr><td class="" colspan="2">ADD HEADER HERE</td></tr>' for(i=0; i<midpoint; i++){ html+='<tr><td>'+links[i]+'</td><td>'+links[midpoint+i] + '</td></tr>'; } document.getElementById('stylewithcss').innerHTML = html; <table id="stylewithcss"> </table>