Вы вызываете одну и ту же функцию нажатием обеих кнопок. Вам нужно либо предоставить аргумент, который должен указать, какой тип информации вы должны установить на innerHTML
, либо создать две разные функции.
Первое решение:
const nbaLoads = (type) => {
fetch('nba.json')
.then(res => res.json())
.then(data => {
let output = '';
data.forEach(s => {
if(s.year === parseInt(select.value) && type == "champions"){
output += `
<img src="" width= 100px; height=100px>
<h4>CHAMPIONS: ${s.champion}</h4>
`
} if(s.year === parseInt(select.value) && type == "runnerUp"){
output += `
<img src="" width= 100px; height=100px>
<h4>RUNNER UP: ${s.runnerUp}</h4>
`
}
});
document.querySelector('#output').innerHTML = output;
})
};
champion.addEventListener('click', () => nbaLoads("champions"));
runnerUp.addEventListener('click', () => nbaLoads("runnerUp"));
Второе решение:
const nbaLoads = () =>
fetch('nba.json')
.then(res => res.json());
const loadChampion = () =>
nbaLoads()
.then(data => {
let output = '';
data.forEach(s => {
if (s.year === parseInt(select.value)) {
output += `
<img src="" width= 100px; height=100px>
<h4>CHAMPIONS: ${s.champion}</h4>
`;
}
});
document.querySelector('#output').innerHTML = output;
});
const loadRunnerUp = () =>
nbaLoads()
.then(data => {
let output = '';
data.forEach(s => {
if (s.year === parseInt(select.value)) {
output += `
<img src="" width= 100px; height=100px>
<h4>RUNNER UP: ${s.runnerUp}</h4>
`;
}
document.querySelector('#output').innerHTML = output;
});
});
champion.addEventListener('click', loadChampion);
runnerUp.addEventListener('click', loadRunnerUp);