第一个"for循环"中的两个"for循环"工作正常,但问题出现在我将它们包装在第一个循环中时.
谁能看出他们有什么问题?
jQuery('#rooms').change(function () {
for (var a = 1; a > 40; a++;) {
if (jQuery("#rooms").val() == a) {
var val = a;
for (var i = 1; i > val; i++) {
var room = '#room' + i;
jQuery(room).show();
}
for (var i = val + 1; i < 40; i++) {
var room = '#room' + i;
jQuery(room).hide();
jQuery('#r' + i + 'adult, #r' + i + 'child, #room' + i + ' .room-type, #room' + i + ' .room-board, #sr' + i + 'ch1, #sr' + i + 'ch2, #sr' + i + 'ch3, #sr' + i + 'ch4').prop('selectedIndex', 0);
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
**谢谢,所以代码的问题是最后的分号和条件.
我想要实现的是简化此代码.
现在这对我来说非常适合:
if (jQuery("#rooms").val() == 1) {
var val = 1;
for ( var i = 1; i < val + 1; i++) {var room = '#room' + i; jQuery(room).show(); }
for ( var i = val + 1; i < 40; i++) {var room = '#room' + i; jQuery(room).hide(); jQuery('#r'+i+'adult, #r'+i+'child, #room'+i+' .room-type, #room'+i+' .room-board, #sr'+i+'ch1, #sr'+i+'ch2, #sr'+i+'ch3, #sr'+i+'ch4').prop('selectedIndex',0); }
}
if (jQuery("#rooms").val() == 2) {
var val = 2;
for ( var i = 1; i < val + 1; i++) {var room = '#room' + i; jQuery(room).show(); }
for ( var i = val + 1; i < 40; i++) {var room = '#room' + i; jQuery(room).hide(); jQuery('#r'+i+'adult, #r'+i+'child, #room'+i+' .room-type, #room'+i+' .room-board, #sr'+i+'ch1, #sr'+i+'ch2, #sr'+i+'ch3, #sr'+i+'ch4').prop('selectedIndex',0); }
}
if (jQuery("#rooms").val() == 3) {
var val = 3;
for ( var i = 1; i < val + 1; i++) {var room = '#room' + i; jQuery(room).show(); }
for ( var i = val + 1; i < 40; i++) {var room = '#room' + i; jQuery(room).hide(); jQuery('#r'+i+'adult, #r'+i+'child, #room'+i+' .room-type, #room'+i+' .room-board, #sr'+i+'ch1, #sr'+i+'ch2, #sr'+i+'ch3, #sr'+i+'ch4').prop('selectedIndex',0); }
}
Run Code Online (Sandbox Code Playgroud)
但是我想创建一个"for循环",所以在达到"val()== 40"之前我不必重复这些行.
对不起,我只想多思考一下.这是解决方案:
for ( var x = 1; x < 40; x++) {
if (jQuery("#rooms").val() == x) {
var val = x;
for ( var i = 1; i < val + 1; i++) {var room = '#room' + i; jQuery(room).show(); }
for ( var i = val + 1; i < 40; i++) {var room = '#room' + i; jQuery(room).hide(); jQuery('#r'+i+'adult, #r'+i+'child, #room'+i+' .room-type, #room'+i+' .room-board, #sr'+i+'ch1, #sr'+i+'ch2, #sr'+i+'ch3, #sr'+i+'ch4').prop('selectedIndex',0); }
}
}
Run Code Online (Sandbox Code Playgroud)
非常感谢你!
a
永远不会大于40
和等于1
同时所以不会执行
您在for循环中放置的代码如下:
for (var a = 1; a > 40; a++;) {
Run Code Online (Sandbox Code Playgroud)
有很多问题:
a
永远不会大于40
等于1
循环被破坏你的意思是a < 40
?
这将导致类似这样的事情:
for (var a = 1; a < 40; a++) {
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
78 次 |
最近记录: |