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

140
Vistas
Agregar declaración if a una cadena en JavaScript

Estoy tratando de hacer que un archivo de audio se reproduzca en mi página html (puedo hacer que se reproduzca con un clic). Pero estoy tratando de reproducir un clip de audio cuando se muestra un texto específico. Por ejemplo, estoy tratando de reproducir un clip de audio que debe ser específico para el texto que se muestra (o cualquier objeto).

Entonces, tengo algunas cadenas (Preguntas y respuestas) pero no puedo averiguar qué asignar a las cadenas para activar la reproducción del archivo de audio. Además, tal vez haya otra manera simplemente haciendo una función para cada pregunta.

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

0

Creo que quieres algo como esto:

  1. Coloque su fuente de audio como cadenas en una matriz, junto con otra información (mencionó preguntas);
  2. Itere la matriz y construya los nodos DOM, colocando un detector de eventos al hacer clic o cualquier otro evento que desee activar el sonido;
  3. Simplemente agregue la fuente de audio al nodo de audio html dinámicamente cuando ocurra el evento y reprodúzcalo;

 const data = [{ question: "What's the name of Culham?", choices: ["Alan", "Alastair"], answer: "Alastair", audio: "https://upload.wikimedia.org/wikipedia/commons/7/7f/Alastair_Culham_voice.ogg" }, { question: "What's the name of Thompson?", choices: ["Bill", "John"], answer: "Bill", audio: "https://upload.wikimedia.org/wikipedia/commons/b/b1/Bill_Thompson_speaking.ogg" }] const generate = () => { root.innerHTML = "" audio.src="" const idx = Math.round(Math.random() * (data.length - 1)) root.innerHTML += `<div>${data[idx].question}</div>` data[idx].choices.forEach(c => { const btn = document.createElement("button") btn.innerText = c btn.onclick = function() { if (data[idx].answer === c) { audio.src = data[idx].audio audio.play() audio.onended = generate } else alert("Wrong Answer, try again") } root.appendChild(btn) }) } generate() reset.onclick = generate
 <div id="root"></div> <audio id="audio"></audio> <button id="reset">Reset</button>

about 4 years ago · Juan Pablo Isaza Denunciar

0

No coloque sus preguntas en un lugar y las señales de audio en otro. Manténgalos juntos en objetos de datos que tengan propiedades por pregunta. Por ejemplo:

 questions = [ { question: 'What is your quest?', answer: 'To seek the holy grail.', badAnswers: [ '16.9 Gigawatts', 'African or European?', 'Red. No, blue!' ], audioQuestion: 'hmm.mp3', audioCorrect: 'youtu.be/0D7hFHfLEyk', audioIncorrect: 'sproing.mp3' }, { question: 'My milkshake brings more boys to the _____.', answer: 'yard', badAnswers: [ 'stand', 'steps', 'park', '21st century' ], audioQuestion: 'hmm.mp3', audioCorrect: 'youtu.be/i4YutyVP7ig', audioIncorrect: 'sproing.mp3' } ]

Y luego puede tener una función que sepa qué hacer cuando se le da un elemento de esta matriz.

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