Javascript 是否基于选定的下拉列表值隐藏/显示循环?
很抱歉格式不好。我在手机上 你好 我只是想知道如何将下面的函数变成一个循环 现在,我只是一遍又一遍地重复同样的事情。我有一个从示例1到示例30的文本框ID。30个文本框。还有一个下拉列表 值范围为1-30。如果我从下拉列表中选择5,它将显示5个文本框,并隐藏其余的文本框 我目前有: $document.readyfunction{Javascript 是否基于选定的下拉列表值隐藏/显示循环?,javascript,jquery,Javascript,Jquery,很抱歉格式不好。我在手机上 你好 我只是想知道如何将下面的函数变成一个循环 现在,我只是一遍又一遍地重复同样的事情。我有一个从示例1到示例30的文本框ID。30个文本框。还有一个下拉列表 值范围为1-30。如果我从下拉列表中选择5,它将显示5个文本框,并隐藏其余的文本框 我目前有: $document.readyfunction{ $('#containers').on('change', function() { if (this.value == '1'){
$('#containers').on('change', function() {
if (this.value == '1'){
$(".Container1").show();
$('.Container2').hide();$('.Container3').hide();$('.Container4').hide();$('.Container5').hide();$('.Container6').hide();$('.Container7').hide();$('.Container8').hide();$('.Container9').hide();$('.Container10').hide();$('.Container11').hide();$('.Container12').hide();$('.Container13').hide();$('.Container14').hide();$('.Container15').hide();$('.Container16').hide();$('.Container17').hide();$('.Container18').hide();$('.Container19').hide();$'.Container20').hide();$('.Container21').hide();$('.Container22').hide();$('.Container23').hide();$('.Container24').hide();$('.Container25').hide();$('.Container26').hide();$('.Container27').hide();$('.Container28').hide();$('.Container29').hide();$('.Container30').hide();
}
else if (this.value == '2'){
$(".Container1").show();
$(".Container2").show();
$('.Container3').hide();$('.Container4').hide();$('.Container5').hide();$('.Container6').hide();$('.Container7').hide();$('.Container8').hide();$('.Container9').hide();$('.Container10').hide();$('.Container11').hide();$('.Container12').hide();$('.Container13').hide();$('.Container14').hide();$('.Container15').hide();$('.Container16').hide();$('.Container17').hide();$('.Container18').hide();$('.Container19').hide();$'.Container20').hide();$('.Container21').hide();$('.Container22').hide();$('.Container23').hide();$('.Container24').hide();$('.Container25').hide();$('.Container26').hide();$('.Container27').hide();$('.Container28').hide();$('.Container29').hide();$('.Container30').hide();
}
else if (this.value == '3'){
$(".Container1").show();
$(".Container2").show();
$(".Container3").show();
$('.Container4').hide();$('.Container5').hide();$('.Container6').hide();$('.Container7').hide();$('.Container8').hide();$('.Container9').hide();$('.Container10').hide();$('.Container11').hide();$('.Container12').hide();$('.Container13').hide();$('.Container14').hide();$('.Container15').hide();$('.Container16').hide();$('.Container17').hide();$('.Container18').hide();$('.Container19').hide();$'.Container20').hide();$('.Container21').hide();$('.Container22').hide();$('.Container23').hide();$('.Container24').hide();$('.Container25').hide();$('.Container26').hide();$('.Container27').hide();$('.Container28').hide();$('.Container29').hide();$('.Container30').hide();
}
else if (this.value == '4'){
$(".Container1").show();
$(".Container2").show();
$(".Container3").show();
$(".Container4").show();
$('.Container5').hide();$('.Container6').hide();$('.Container7').hide();$('.Container8').hide();$('.Container9').hide();$('.Container10').hide();$('.Container11').hide();$('.Container12').hide();$('.Container13').hide();$('.Container14').hide();$('.Container15').hide();$('.Container16').hide();$('.Container17').hide();$('.Container18').hide();$('.Container19').hide();$'.Container20').hide();$('.Container21').hide();$('.Container22').hide();$('.Container23').hide();$('.Container24').hide();$('.Container25').hide();$('.Container26').hide();$('.Container27').hide();$('.Container28').hide();$('.Container29').hide();$('.Container30').hide();
}
else if (this.value == '5'){
$(".Container1").show();
$(".Container2").show();
$(".Container3").show();
$(".Container4").show();
$(".Container5").show();
$('.Container6').hide();$('.Container7').hide();$('.Container8').hide();$('.Container9').hide();$('.Container10').hide();$('.Container11').hide();$('.Container12').hide();$('.Container13').hide();$('.Container14').hide();$('.Container15').hide();$('.Container16').hide();$('.Container17').hide();$('.Container18').hide();$('.Container19').hide();$'.Container20').hide();$('.Container21').hide();$('.Container22').hide();$('.Container23').hide();$('.Container24').hide();$('.Container25').hide();$('.Container26').hide();$('.Container27').hide();$('.Container28').hide();$('.Container29').hide();$('.Container30').hide();
}
});
正如你所看到的,这是一种糟糕的方法。坦白说,这很尴尬。我尝试过循环,但无法找到它。如果你可以更改HTML,那么最好在所有文本框中添加一个公共类,说公共,然后执行此操作
$('#containers').on('change', function() {
$('.common').hide();
let x = $(this).val();
for(var s = 0 ; s < x ; s++)
$($('.common')[s]).show();
});
如果无法编辑html,请执行此操作
$('#containers').on('change', function() {
$('input[id^="example"]').hide();
let x = $(this).val();
for(var s = 0 ; s < x ; s++)
$('#example'+ (s+1)).show();
});
编辑:如果您需要ref,请使用Fiddle链接
纯js解决方案;我使用了5个输入框;请根据您的情况将其扩展到30个 document.getElementByIddropDown.onchange=showHideInputBox; 函数showHideInputBox{ 让chosenValue=document.getElementByIddropDown.value; 让AllInputBox=document.getElementsByTagNameinput; fori=0;i
jsFIDLE可以找到谢谢你的回复。是的,我可以更改类。这是最好的选择吗?我已经做了编辑,你可以不用更改html@MailBladeThanks来完成。很多人,你刚刚为我节省了大量工作。我很确定这会起作用。现在要测试它。只需检查文本框是否有类或IDse在您编写的问题中,他们有ID,但在您的代码中,您使用了类:P@MailBladeGreat解决方案,非常感谢,mate。将根据需要应用缩放。
<select id="containers">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
</select>
<div id='input-containers' style="display:none;">
<input type="text" class="input-containers Container1" value="Container1">
<input type="text" class="input-containers Container2" value="Container2">
<input type="text" class="input-containers Container3" value="Container3">
<input type="text" class="input-containers Container4" value="Container4">
<input type="text" class="input-containers Container5" value="Container5">
<input type="text" class="input-containers Container6" value="Container6">
<input type="text" class="input-containers Container7" value="Container7">
<input type="text" class="input-containers Container8" value="Container8">
<input type="text" class="input-containers Container9" value="Container9">
<input type="text" class="input-containers Container10" value="Container10">
<input type="text" class="input-containers Container11" value="Container11">
<input type="text" class="input-containers Container12" value="Container12">
<input type="text" class="input-containers Container13" value="Container13">
<input type="text" class="input-containers Container14" value="Container14">
<input type="text" class="input-containers Container15" value="Container15">
<input type="text" class="input-containers Container16" value="Container16">
<input type="text" class="input-containers Container17" value="Container17">
<input type="text" class="input-containers Container18" value="Container18">
<input type="text" class="input-containers Container19" value="Container19">
<input type="text" class="input-containers Container20" value="Container20">
<input type="text" class="input-containers Container21" value="Container21">
<input type="text" class="input-containers Container22" value="Container22">
<input type="text" class="input-containers Container23" value="Container23">
<input type="text" class="input-containers Container24" value="Container24">
<input type="text" class="input-containers Container25" value="Container25">
<input type="text" class="input-containers Container26" value="Container26">
<input type="text" class="input-containers Container27" value="Container27">
<input type="text" class="input-containers Container28" value="Container28">
<input type="text" class="input-containers Container29" value="Container29">
<input type="text" class="input-containers Container30" value="Container30">
</div>
$(document).ready(function() {
function hideAllContainers() {
//put common class for all containers
$(".input-containers").hide();
$("#input-containers").show();
}
$('#containers').on('change', function() {
hideAllContainers();
var count = parseInt(this.value);
for (i = 1; i <= count; i++) {
console.log($(".Container" + i));
$(".Container" + i).show();
}
});
});