Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

161
Visualizações
span textContent split devuelve indefinido en la función javascript

Estoy tratando de ayudar a un amigo con el siguiente javascript. Ambos somos nuevos en javascript.

Estamos tratando de convertir la cadena de fecha a un formato diferente. Según la búsqueda en Internet, entendemos que la función de fecha espera que la cadena de entrada tenga el formato Fecha (año, mes, día). Para lograr eso, necesitamos analizar la cadena de entrada y enviarla en el formato esperado. No tenemos ni idea de por qué la división de cadenas en el contenido de texto de la etiqueta span (que contiene la cadena de fecha) no funciona.

 <script type="text/javascript"> function ready(callback){ if (document.readyState!='loading') callback(); else if (document.addEventListener) document.addEventListener('DOMContentLoaded', callback); else document.attachEvent('onreadystatechange', function(){ if (document.readyState=='complete') callback(); }); } window.onload = ready(function() { var dateString = document.getElementById("dateFormatter").textContent.trim(); var sMonth = dateString.split("/")[0]; var sDay = dateString.split("/")[1]; var sYear = dateString.split("/")[2]; document.getElementById("dateFormatter").textContent=sMonth; }); </script>

El html tiene la siguiente etiqueta de intervalo.

 <span id="dateFormatter">26/06/1993</span>

sMonth devuelve 26/06/1993, mientras que sDay y sYear devuelven indefinidos.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

La cadena de su div tiene un formato no válido si desea convertirla en una cadena de fecha. Una cadena válida sería: aaaa-mm-dd. Si ya tiene un objeto de fecha, puede usar la función para formatear la fecha.

Como eso:

Actualizar

 callback(); window.addEventListener('load', function () { var dateString = document.getElementById("dateFormatter").textContent.trim(); console.log(dateString) let dateArr = dateString.split("/"); var sDay = dateArr[0]; var sMonth = dateArr[1]; var sYear = dateArr[2]; let newDateString = (sYear + '-' + sMonth + '-' + sDay); let d = new Date(newDateString); console.log(d); document.getElementById("dateFormatter").textContent=d.toLocaleString(); });
 <span id="dateFormatter">26/06/1993</span>

fragmento antiguo

 function ready(callback) { if (document.readyState!='loading') callback(); else if (document.addEventListener) document.addEventListener('DOMContentLoaded', callback); else document.attachEvent('onreadystatechange', function(){ if (document.readyState=='complete') callback(); }); } window.onload = ready(function() { var dateString = document.getElementById("dateFormatter").textContent.trim(); console.log(dateString) let dateArr = dateString.split("/"); var sDay = dateArr[0]; var sMonth = dateArr[1]; var sYear = dateArr[2]; let newDateString = (sYear + '-' + sMonth + '-' + sDay); let d = new Date(newDateString); console.log(d); document.getElementById("dateFormatter").textContent=d; });
 <span id="dateFormatter">26/06/1993</span>

about 4 years ago · Juan Pablo Isaza Relatório

0

El problema es que está configurando el contenido de texto del lapso para que solo muestre el valor de sMonth y cuando eso suceda, el lapso solo tendrá "26" como su cuerpo (que por cierto es incorrecto si escribe fechas así) - y en realidad no debería ser "26/06/1993" si el código es correcto.

Además, si desea ejecutar la secuencia de comandos varias veces, intente establecer el contenido de texto del tramo en sDay+"/"+sMonth+"/"+sYear para que tenga el mismo formato con el que espera que funcione la secuencia de comandos. El código que proporcionó establece el valor del lapso en "26", luego, si lo ejecuta nuevamente, intenta dividir "26" a lo largo de "/", lo que, por supuesto, termina siendo incorrecto.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda