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

201
Vistas
escribir get.ElementByClass() desde div anidado al archivo

Estoy trabajando en un chatbot donde los usuarios pueden hablar con el chatbot y me gustaría que la conversación se registre en un archivo de texto. Estaba pensando en tomar el <div class="msg-text"> , que representa la conversación document.getElementByClass("msg-text")[0].innerText; que es la respuesta del chatbot y document.getElementByClass("msg-text")[1].innerText; que es la respuesta del usuario y hacer que se lea en un archivo. La respuesta del chatbot en números pares (0,2,4,6,8, etc.) e impares (1,3,5,7,9, etc.) es la respuesta del usuario.

¿Existe una forma más eficiente de obtener los elementos y escribirlos en un archivo? En este momento no tengo nada en mi archivo.

 // This function finds odd/even and write to file function findTheOddOnes_ToFile() { var fso = new ActiveXObject("Scripting.FileSystemObject"), thefile = fso.CreateTextFile("/Desktop/even.txt", True); // find odd/even numbers in element for (var i=0;i => document.getElementsByClassName("msg-text").length;i++) { if ( i % 2 == 0) { //If even add the chatbots respons to file. Chatbot respons are even numbes (0,2,4,6,etc) //write to file thefile.writeline("chatbot: " + document.getElementsByClassName("msg-text")[i].textContent + "<br>"); } else{ //if Odd write to file as users respons (1,3,5,7,etc) //write to file thefile.writeline("You: : " + document.getElementsByClassName("msg-text")[i].textContent); } } }
 <body> <!-- partial:index.partial.html --> <section class="msger"> <header class="msger-header"> <div class="msger-header-title"> <i class="fas fa-bug"></i> SE Chatbot <i class="fas fa-bug"></i> </div> </header> <main class="msger-chat"> <div class="msg left-msg"> <div class="msg-img" style="background-image: url(https://image.flaticon.com/icons/svg/327/327779.svg)"></div> <div class="msg-bubble"> <div class="msg-info"> <div class="msg-info-name">SEBot_real</div> <div class="msg-info-time">12:45</div> </div> <div class="msg-text"> Hi, welcome to SE-Bot! Go ahead and send me a message. </div> </div>

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

0

Sí, no llames a document.getElementsByClassName() varias veces. Además, ¿qué sucede si el usuario escribe algo dos veces antes de que responda el chatbot?

Le recomendaría que agregue un msg-bubble-user y msg-bubble-bot a su elemento .msg-bubble . Luego revíselos, grabando la transcripción según el nombre de la clase, no la posición:

 document.querySelector(".msg-bubble").forEach(el=>{ const speaker = el.matches(".msg-bubble-user") ? "You" : "Chatbot"; const content = el.querySelector(".msg-text").textContent; thefile.writeline(`${speaker}: ${content}<br />`); });

^no probado

Si su archivo está vacío, agregue una llamada a console.log() para ver si está recibiendo el texto que esperaba.

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