Javascript 如何遍历一系列问题并存储在一系列用户输入中?
Javascript 如何遍历一系列问题并存储在一系列用户输入中?,javascript,jquery,arrays,forms,for-loop,Javascript,Jquery,Arrays,Forms,For Loop,当我试图将一系列问题写入文档时,我在尝试正确地迭代这些问题时遇到了问题。 我在下面包含的第一段代码基本上就是我想要实现的,只是我想在没有提示的情况下完成它。 我创建了一个名为question[]的数组,它现在存储3个问题字符串。带有提示(问题[i])的for循环接受问题[]中的每个问题,并提示用户回答。然后它将该值推送到我创建的另一个名为character[]的数组中 我尝试了两种不同的方法来使用.append方法完成这项工作,但不幸的是没有成功,我想我可以在几个不同的方面找出我的缺陷 在最后一
当我试图将一系列问题写入文档时,我在尝试正确地迭代这些问题时遇到了问题。 我在下面包含的第一段代码基本上就是我想要实现的,只是我想在没有提示的情况下完成它。 我创建了一个名为
question[]
的数组,它现在存储3个问题字符串。带有提示(问题[i])
的for循环接受问题[]
中的每个问题,并提示用户回答。然后它将该值推送到我创建的另一个名为character[]
的数组中
我尝试了两种不同的方法来使用.append方法完成这项工作,但不幸的是没有成功,我想我可以在几个不同的方面找出我的缺陷在最后一段代码中,我试图将
question[]
中的问题附加到页面上,然后让文档监听要更改的输入值,或者要按下Enter键(键13)。
另外,请注意,我已将所有这些都包装在以下函数中:$(文档).ready(函数(){…}
var question = [
'<br> What is your name?',
'<br> Are you man or woman?',
'<br> What is your class?'
];
var character = [];
//For Loop Using prompt()
for (i = 0; i < question.length; i++) {
var input = prompt(question[i]);
character.push(input);
alert(character[i]);
}
var问题=[
“
你叫什么名字?”,
“
你是男人还是女人?”,
“
你的班级是什么?”
];
变量字符=[];
//使用prompt()进行For循环
对于(i=0;i
//For循环试图使用HTML“”
对于(i=0;i
或
for(i=0;i
我不会让循环一次显示一个问题,而是让循环一次显示所有问题,而我似乎也无法让它接受用户输入。我真的不知道该怎么做,也不知道我到底缺少什么知识,因为我似乎无法在网上找到答案。
再一次,总结一下我的问题:
如何从页面本身的数组中询问问题,让页面等待响应,将该响应存储在另一个数组中,然后再次执行该操作,直到完成整个数组?
非常感谢您的时间!我将非常感谢您的帮助!您可以使用递归方法,将逻辑封装到函数中提出问题,完成此过程后,再使用下一个问题调用此函数。请注意,我已删除警报对话框,并将其替换为
控制台.log()
在所有过程结束时,只需稍微清理一下逻辑即可
var问题=[
“
你叫什么名字?”,
“
你是男人还是女人?”,
“
你的班级是什么?”
];
变量字符=[];
常量askQuestion=(idx)=>
{
如果(idx>=问题长度)
{
console.log(字符);
返回;
}
字符推送(提示(问题[idx]);
询问问题(idx+1);
}
askQuestion(0);
由于您希望在页面上获取问卷(无提示),因此可以使用jQuery事件控制主页上问题的闪烁,还可以在数组中按顺序记录答案。
以下是您可以做的:
var问题=[
“你叫什么名字?”,
“你是男人还是女人?”,
“你上什么课?”
];
var i=0;
var ans=[];
$(文档).ready(函数(){
$(“#ques”).html(问题[i]);
});
$(“#答案”)。单击(函数(){
ans.push($(“#ans”).val());
$(“#ans”).val(“”);
i++;
$(“#ques”).html(问题[i]);
$(“#应答”).html(JSON.stringify(ans));
如果(i==问题长度){
$(“#ans”).hide();
$(“#答案”).hide();
$(“#ques”).html(“你已经回答了所有的问题!”);
}
});
答复
Hi@Shidersz!谢谢你的回复。我不确定这个网站上的所有礼仪规则是什么,因为我是新来的,但我希望你不要觉得我明天回来仔细检查你的答案有失礼貌,因为我马上就要睡着了!安静地睡吧,你可以在有时间的时候检查答案,没有问题规则就是这样。
//For Loop Attempting to Use HTML '<input>'
<input id="user-input" placeholder="Type Here"></input>
for (i = 0; i < question.length; i++) {
$('#game-text').append(question[i]);
$('#user-input').onchange = function() {
var userInput = input.value;
character.push(userInput);
}
}
for (i = 0; i < question.length; i++) {
$('#game-text').append(question[i]);
$(document).keypress(function(key){
if(key.which === 13 && $('#user-input').is(':focus')) {
var input = $('#user-input').val();
character.push(input);
}
})