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

154
Views
Uso de Axios para publicar una broma al hacer clic (1 a la vez)

Me vendría bien un poco de ayuda. Tengo un botón y, al hacer clic, genera una broma usando la API de bromas de papá y Axios. Sin embargo, no puedo descifrar cómo deshacerme de la vieja broma cuando vuelvo a hacer clic en el botón. Aquí está mi código. Gracias

let button = document.querySelector('button') button.addEventListener("click", getJoke)

 function getJoke() { const p = axios .get('https://icanhazdadjoke.com/', { headers: { "Accept": "text/plain" }, }) .then((response) => { const joke = response.data const jokeContainer = document.querySelector('.joke'); const blockquoteEl = document.createElement('blockquote'); blockquoteEl.append(joke); jokeContainer.appendChild(blockquoteEl); }) .catch((error) => { const jokeContainer = document.querySelector('.joke'); jokeContainer.innerText = 'Joke not found :('; }); } <div class="joke"> <button>Click if you want a cringe joke</button> </div>
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

necesita almacenar los chistes entrantes en una matriz para verificar los duplicados. prueba esto

 function getJoke() { const p = axios .get('https://icanhazdadjoke.com/', { headers: { "Accept": "text/plain" }, }) .then((response) => { const joke = response.data const jokesArr = []; // stores joke history jokesArr.push(joke); // checkes the repeated joke in jokes history const jokeCheck = (joke) => { const currentItemCount = jokesArr.filter(val => val=== joke).length; if(currentItemCount > 0) { p(); } return joke; } const currentJoke = jokeCheck(joke); const jokeContainer = document.querySelector('.joke'); const blockquoteEl = document.createElement('blockquote'); blockquoteEl.append(currentJoke); jokeContainer.appendChild(blockquoteEl); }) .catch((error) => { const jokeContainer = document.querySelector('.joke'); jokeContainer.innerText = 'Joke not found :('; }); }

about 4 years ago · Juan Pablo Isaza Report

0

Lo que debe hacer es usar las funciones heredadas por los elementos dom para eliminar el nodo secundario:

 <body> <div class="joke"> <button>Click if you want a cringe joke</button> </div> <script> let button = document.querySelector('button'); button.addEventListener("click", getJoke); function getJoke(){ const p = axios.get('https://icanhazdadjoke.com/', { headers: { "Accept": "text/plain" } }).then((response) => { const joke = response.data const jokeContainer = document.querySelector('.joke'); jokeContainer.removeChild(jokeContainer.childNodes[2]); const blockquoteEl = document.createElement('blockquote'); blockquoteEl.append(joke); jokeContainer.appendChild(blockquoteEl); }).catch((error) => { const jokeContainer = document.querySelector('.joke'); jokeContainer.innerText = 'Joke not found :('; }); } </script> </body>
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!