JS和Jquery中OR类型的多个字符串数组



问题如下:

HTML:

<input type="text" id="input" placeholder="question"/>
<div id="correct-answer"> 
<text>text1</text>
<text>text2</text>
</div>

JS:

$(document).ready(function() {
$('#input').on('keyup', function() {
$('#correct-answer').toggle(this.value.trim().toLowerCase() == 'text1');
});
});

因此:

  1. div#正确答案最初通过CSS隐藏
  2. JS在用户的输入中显示这个div,匹配=="text1">
  3. 它有效,但在某些情况下我希望使用多个正确答案
  4. 这些多个答案可能由不同的单词组成,或者由不同的词簇组成

5.问题:关于如何在:=="text1"上扩展JS以在其中插入多个字符串数组,有什么想法吗

我脑子里有这样的想法:

$(document).ready(function() {
$('#input').on('keyup', function() {
$('#correct-answer').toggle(this.value.trim().toLowerCase() == 'text1' OR =='text2');
});
});

如果我想在单独的正确答案上显示单独的div(有些问题可能有多个正确答案(:

HTML:

<input type="text" id="input" placeholder="question"/>
<div id="correct-answer-1"> 
<text>text1</text>
</div>
<div id="correct-answer-2"> 
<text>text2</text>
</div>
$(document).ready(function() {
$('#input').on('keyup', function() {
$('#correct-answer-1').toggle(this.value.trim().toLowerCase() == 'text1');
$('#correct-answer-2').toggle(this.value.trim().toLowerCase() == 'text2');
});
});

这部分代码似乎不起作用,但是,我哪里出错了?谢谢

您可以使用数组来验证您的答案

const acceptedAnswers = ['text1', 'text2'];
const answer = this.value.trim().toLowerCase();
if (acceptedAnswers.includes(answer)) {
/* do something */
}
// or in your case
$('#correct-answer').toggle(acceptedAnswers.includes(answer));

或者使用Or条件,用||标注

$('#correct-answer').toggle(this.value.trim().toLowerCase() === 'text1' || this.value.trim().toLowerCase() === 'text2');