问题如下:
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');
});
});
因此:
- div#正确答案最初通过CSS隐藏
- JS在用户的输入中显示这个div,匹配=="text1">
- 它有效,但在某些情况下我希望使用多个正确答案
- 这些多个答案可能由不同的单词组成,或者由不同的词簇组成
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');