[英]Button to display random array value from filter
I am trying to have a button that randomly displays an item of an array based on a filter using a button to cycle through the array.我正在尝试使用一个按钮来随机显示一个基于过滤器的数组项目,使用按钮在数组中循环。
My current HTML is:我当前的 HTML 是:
<input type="button" id="btnSearch" value="Search" onclick="GetValue();" />
<br>
<img id="target" src="/img/test.png">
<p id="message">test</p>
and my JS is:我的JS是:
function GetValue() {
var quotes = [
{
name: 'Roller Coaster',
artic: ['initialR', 'medialR', 'finalR'],
img: '/img/rollercoaster.png'
},
{
name: 'Rooster',
artic: ['initialR', 'finalR'],
img: '/img/rooster.png'
},
{
name: 'Rose',
artic: ['initialR'],
img: '/img/rose.png'
}
];
var filteredQuotes = quotes.filter(x => x.artic.includes('medialR'));
var random = filteredQuotes[Math.floor(Math.random() * filteredQuotes.length)];
document.getElementById('message').innerHTML = random.name;
document.getElementById('target').innerHTML = random.img;
}
The filter I have on this would only display "Roller Coaster" based on the filter, but currently nothing changes on click.我对此的过滤器只会根据过滤器显示“过山车”,但目前单击时没有任何变化。
I figured it out!我想到了!
const btn = document.querySelector('#btnSearch');
function GetValue() {
var quotes = [
{
name: 'Roller Coaster',
artic: ['initialR', 'medialR', 'finalR'],
img: '/img/rollercoaster.png'
},
{
name: 'Rooster',
artic: ['initialR', 'finalR'],
img: '/img/rooster.png'
},
{
name: 'Rose',
artic: ['initialR', 'finalZ', 'CVC', 'syl1'],
img: '/img/rose.png'
}
];
const filteredQuotes = quotes.filter(x => x.artic.includes('medialR'));
var random = filteredQuotes[Math.floor(Math.random() * filteredQuotes.length)];
document.getElementById('message').innerHTML = random.name;
document.getElementById('target').innerHTML = random.img;
}
btn.addEventListener('click', () => {
GetValue();
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.