Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

192
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!