JSFiddle - React, Tailwind, and code Playground
JavaScript
function createAudio(src) {
output = '<audio id="audio">';
// you can add more source tag
output += '<source src='+src+'" type="audio/mp3" />';
output += '</audio>';
}
$("document").on("click", ".btn-play", function() {
var src = $(this).parent("td").data("src");
var newAudio = $(createAudio(src));
$("#audio").replaceWith(newAudio);
newAudio.play();
});
$('#search').keyup(function() {
var searchField = $('#search').val();
var myExp = new RegExp(searchField, "i");
$.getJSON('JSON/data.json', function(data) {
// audio tag should be outside ul, because it will invalidate the html (no other tags inside <ul> other than <li>)
var output = '<audio id="audio"></audio>';
output += '<ul class ="searchresults">';
var buttonPlay = '<button class="btn-play">Play</button>';
var buttonPause = '<button onClick="document.getElementById(\'audio\').pause()>Pause</button>';
$.each(data, function(key, val){
if(val.name.search(myExp) != -1){
output += '<li>';
output += '<h2>' + val.name + '</h2>';
output += '<img src="images/champion-images/' + val.name.replace(/'| /g, "") + 'Square.png" alt="'+ val.name +'" />';
output += '<table><thead><tr><th>Lane</th><th>Song</th></tr></thead>';
output += '<tr><td>Top</td><td data-src="song1.mp3" class="play">' + val.toplane.replace(/-/g, " ") + buttonPlay + buttonPause + '</td></tr>';
output += '<tr><td>Mid</td><td data-src="song2.mp3" class="play">' + val.midlane.replace(/-/g, " ") + buttonPlay + buttonPause +'</td></tr>';
output += '<tr><td>Jungle</td><td data-src="song3.mp3" class="play">' + val.jungle.replace(/-/g, " ") + buttonPlay + buttonPause +'</td></tr>';
output += '<tr><td>Bot</td><td data-src="song4.mp3" class="play">' + val.botlane.replace(/-/g, " ") + buttonPlay + buttonPause +'</td></tr>';
output +=...