aquí está el archivo que tengo. cuando trato de ordenar algún número, no cambia y se mantiene vacío
archivo HTML
<tr> <th>Original array</th> <td id ="td1">1,5,7,-1,3</td></tr> <tr> <th>Sorted Array</th> <td id="td2"></td>
archivo JS
var OriginalArr = document.getElementById("td1").value; var a = document.getElementById("td2").value; a.value = Original.sort();
Hay dos problemas principales con esto. En primer lugar, la mayoría de los elementos no tienen una propiedad de value
, solo los elementos que toman entrada. Parece que está buscando textContent
en este contexto.
Otra cosa es que cuando obtiene el texto en td1
, debe convertirse en una matriz antes de poder ordenarlo.
Aquí está el código con los problemas mencionados solucionados:
// Get text in td1 var td1Text = document.getElementById("td1").textContent; // Get array of numbers from text var OriginalArray = td1Text.split(",").map(function(num){ return parseInt(num,10); }); // Get td2 var td2 = document.getElementById("td2"); // Set td2 to sorted array converted to string td2.textContent = OriginalArray.sort().toString();
<table> <tr> <th>Original array</th> <td id ="td1">1,5,7,-1,3</td></tr> <tr> <th>Sorted Array</th> <td id="td2"></td></tr> </table>
Una cosa más a tener en cuenta es que las etiquetas <tr>
deben estar en una <table>
para que getElementById
las consulte correctamente. Sin la etiqueta de la tabla, getElementById
devuelve null
.