我想在这个脚本中使用循环,但我不知道该怎么做。
这是我尝试过的:
$('#choice').change(function(){
if ($('#choice').val()=='')
{
$('#topic1').hide();
$('#topic2').hide();
$('#topic3').hide();
$('#topic4').hide();
$('#topic5').hide();
$('#topic6').hide();
$('#topic7').hide();
}if ($('#choice').val()=='1')
{
$('#topic1').show();
$('#topic2').hide();
$('#topic3').hide();
$('#topic4').hide();
$('#topic5').hide();
$('#topic6').hide();
$('#topic7').hide();
}
if ($('#choice').val()=='2')
{
$('#topic1').show();
$('#topic2').show();
$('#topic3').hide();
$('#topic4').hide();
$('#topic5').hide();
$('#topic6').hide();
$('#topic7').hide();
}
if ($('#choice').val()=='3')
{
$('#topic1').show();
$('#topic2').show();
$('#topic3').show();
$('#topic4').hide();
$('#topic5').hide();
$('#topic6').hide();
$('#topic7').hide();
}
if ($('#choice').val()=='4')
{
$('#topic1').show();
$('#topic2').show();
$('#topic3').show();
$('#topic4').show();
$('#topic5').hide();
$('#topic6').hide();
$('#topic7').hide();
}
if ($('#choice').val()=='5')
{
$('#topic1').show();
$('#topic2').show();
$('#topic3').show();
$('#topic4').show();
$('#topic5').show();
$('#topic6').hide();
$('#topic7').hide();
}
if ($('#choice').val()=='6')
{
$('#topic1').show();
$('#topic2').show();
$('#topic3').show();
$('#topic4').show();
$('#topic5').show();
$('#topic6').show();
$('#topic7').hide();
}
if ($('#choice').val()=='7')
{
$('#topic1').show();
$('#topic2').show();
$('#topic3').show();
$('#topic4').show();
$('#topic5').show();
$('#topic6').show();
$('#topic7').show();
}
});
$('#choice').change();
});
请在这里帮助我。
答案 0 :(得分:5)
$('#choice').change(function(){
$('[id^="topic"]').hide();
var topic = $('#choice').val();
if (topic!='') {
$('#topic'+topic).show();
};
});
$('#choice').change();
答案 1 :(得分:4)
试试这个
$('#choice').change(function(){
var i;
for(i=1;i<8;i++)
{
if(i==$(this).val())
{
$('#topic'+i).show();
}
else
{
$('#topic'+i).hide();
}
}
});
$('#choice').change();
编辑:改进了MrCode的建议。
答案 2 :(得分:1)
jquery可以使用这样的选择器:
$('#choice' + i)
然后,您可以在循环中使用“i”变量
答案 3 :(得分:0)
看起来可以这样做:
$('#choice').on('change', function(){
for(var i=1;i<8;i+=1) {
var showhide = i <= +$(this).val() ? 'show' : 'hide';
// ^convert value to numeric
$('#topic'+i)[showhide]();
}
});
处理程序根据#choice
(显示或隐藏)的值确定要使用的方法。对于#topic[i]
(在循环内)较小的所有i
,#choice
方法的值为show
,对于其他#topic[i]
,方法为{{} 1}}。接下来,使用bracket notation执行确定的方法。
答案 4 :(得分:0)
试试这个:
$('#choice').change(function(){
for( var i = 0; i<8; i++) {
if($('#choice').val() <= i) {
$('#topic' + i).show();
} else {
$('#topic' + i).hide();
}
}
}