For循环语法错误-一次点击将通过整个循环
For Loop syntax error -one click goes through entire loop
作为一个javascript新手,我想我有一个简单的问题。
- edit我想要一个事件发生(两个按钮出现)后,用户从下拉框单击一个选项3次。我最初认为for循环可以帮我做到这一点。我还希望最后一个选项("None"或其他选项)能够显示警告,而不会影响你剩下的点击回合数。希望这能说得通。
任何帮助都将是非常感激的。
var question1 = new Array();
window.onload = function () {
var eSelect = document.getElementById('question1');
var optOtherReason = document.getElementById('displayresponse');
var options = document.getElementsByTagName("option");
eSelect.onchange = function() {
for (var i=0; i<3; i++) {
if (eSelect.selectedIndex !== 3) {
var li = document.createElement("li");
li.innerHTML = options[eSelect.selectedIndex].innerHTML;
var ol = document.getElementById("appendedtext");
ol.appendChild(li);
question1.push(li.innerHTML);
var x= document.getElementById("display");
x.innerHTML=question1;
}
}
if (eSelect.selectedIndex == 3) {
i=0;
optOtherReason.style.display = 'block';
}
}
insertbutton= "block";
displaybutton = "block";
}
<select id="question1" name="question">
<option value="x">Reason1</option>
<option value="y">Reason2</option>
<option value="other">Otherreason</option>
<option value="none">None</option>
</select><br>
<div id="insertbutton" style="display:none;">
<input type="button" value="Save" onclick="insert();">
</div>
<div id="generatebutton" style="display:none;">
<input type="button" value="Show Drink" onClick="generate();">
</div>
<div id="displayresponse" style="display:none;">If you did not see a choice here, you may search for other sites.</div>
<ol id="appendedtext"> </ol>
<div id="display"></div>
我认为你不需要循环遍历选项,因为你直接访问索引。这似乎就是你要找的:
<script type="text/javascript">
var question1 = new Array();
window.onload = function() {
var eSelect = document.getElementById('question1');
var optOtherReason = document.getElementById('displayresponse');
var options = document.getElementsByTagName("option");
eSelect.onchange = function() {
//for (var i=0; i<3; i++) {
if (eSelect.selectedIndex !== 3) {
var li = document.createElement("li");
li.innerHTML = options[eSelect.selectedIndex].innerHTML;
var ol = document.getElementById("appendedtext");
ol.appendChild(li);
question1.push(li.innerHTML);
var x= document.getElementById("display");
x.innerHTML=question1;
}
//}
if (eSelect.selectedIndex == 3){
//i=0;
optOtherReason.style.display = 'block';
}
}
insertbutton= "block";
displaybutton = "block";
}
</script>
<select id="question1" name="question">
<option value="x">Reason1</option>
<option value="y">Reason2</option>
<option value="other">Otherreason</option>
<option value="none">None</option>
</select><br>
<div id="insertbutton" style="display:none;">
<input type="button" value="Save" onclick="insert();"></div>
<div id="generatebutton" style="display:none;">
<input type="button" value="Show Drink" onClick="generate();"></div>
<div id="displayresponse" style="display:none;">If you did not see a choice here, you may search for other sites.</div>
<ol id="appendedtext"> </ol>
<div id="display"></div>
我同意Don的观点,我认为for循环没有必要。我要做的一个小区别是检查所选值而不是索引,因为下拉列表的顺序很容易改变。此外,使用if-else语句比使用两个if语句更简洁。
var question1 = new Array();
window.onload = function() {
var eSelect = document.getElementById('question1');
var optOtherReason = document.getElementById('displayresponse');
var options = document.getElementsByTagName("option");
eSelect.onchange = function() {
var optOtherReason = document.getElementById('displayresponse');
var options = document.getElementsByTagName("option");
if (eSelect.value !== "other") { // For loop eliminated, checking value now
var li = document.createElement("li");
li.innerHTML = options[eSelect.selectedIndex].innerHTML;
var ol = document.getElementById("appendedtext");
ol.appendChild(li);
question1.push(li.innerHTML);
var x= document.getElementById("display");
x.innerHTML=question1;
}else{ // Using else here
optOtherReason.style.display = 'block';
}
}
insertbutton= "block";
displaybutton = "block";
}
相关文章:
- Jquery 循环一次或在数据数组中显示一次数据
- 在Javascript中每五秒钟循环一次
- for循环在javascript中循环一次后不检查条件
- jQuery .each 循环一次一个
- 引导 2 轮播循环一次,然后停止
- 如何在数组中每隔20个位置循环一次
- Slider只循环一次
- 翡翠:每4个元素循环一次,改变职业
- JavaScript事件只循环一次,没有输出
- 每10秒循环一次DIV +选择DIV
- JSON信息循环一次
- 如何每两秒循环一次
- For循环只循环一次
- Jquery每个循环只循环一次,如果使用else代码则停止
- 使用循环一次设置一个项目的动画
- 我怎样才能制作一个“;循环一次”;在每次刷新/加载页面时播放GIF动画背景
- 循环一次后停止javascript幻灯片放映
- 幻灯片功能循环一次,然后失败
- 循环的Javascript应该循环两次,为什么只循环一次
- 如何通过HTML/Javascript循环一次显示一个图像