javascript/php for循环不工作?

javascript/php for循环不工作?,php,jquery,for-loop,Php,Jquery,For Loop,我的phpcode是 <?php for($i = 1; $i < 5; $i++) { ?> <div class="upperBoxContainer" id="test1<?php echo $i; ?>"> <a href="#"><img id="test<?php echo $i; ?>" src="images/midimages/<?php echo $i; ?>.jpg">&

我的phpcode是

<?php for($i = 1; $i < 5; $i++) { ?>
  <div class="upperBoxContainer" id="test1<?php echo $i; ?>"> 
    <a href="#"><img id="test<?php echo $i; ?>" src="images/midimages/<?php echo $i; ?>.jpg"></a>
  </div>
<?php } ?>


将事件包含在立即调用的函数表达式(IIFE)中

jQuery(文档).ready(函数(){
对于(var i=1;i<5;i++){
(职能(一){
$('#test1'+i).hover(函数(){
$('#test'+i).attr('src','images/midimageshover/'+i+'.jpg');
});
$('#test1'+i).mouseout(函数(){
$('#test'+i).attr('src','images/midimages/'+i+'.jpg');
});
})(i) );
}
});
您的代码正在重写
$('#test1'+i)
的值,直到它达到4为止,因此在循环结束时,您只有
$('#test14')

上面的代码通过使用IIFE创建不同的作用域,因此
$('test1'+i)
不会被覆盖,相反,您将拥有
$('test11')
$('test12')
$('test13')
$('test14')


将事件包含在立即调用的函数表达式(IIFE)中

jQuery(文档).ready(函数(){
对于(var i=1;i<5;i++){
(职能(一){
$('#test1'+i).hover(函数(){
$('#test'+i).attr('src','images/midimageshover/'+i+'.jpg');
});
$('#test1'+i).mouseout(函数(){
$('#test'+i).attr('src','images/midimages/'+i+'.jpg');
});
})(i) );
}
});
您的代码正在重写
$('#test1'+i)
的值,直到它达到4为止,因此在循环结束时,您只有
$('#test14')

上面的代码通过使用IIFE创建不同的作用域,因此
$('test1'+i)
不会被覆盖,相反,您将拥有
$('test11')
$('test12')
$('test13')
$('test14')


至少提供错误消息dude,对我来说,代码看起来没有逻辑错误,但代替了.hover use.mouseover$('#test1'+i).mouseover(function(){…只需将事件处理程序附加到
upperBoxContainer
并使用jQueryPlease获取
$i
的值,我们就可以轻松得多。请提供某种形式的错误消息,这样我们就可以帮助调试代码。多亏了!Jonathan de M.的解决方案消除了错误。至少提供了错误消息Dude,对我来说,代码看起来没有逻辑错误rs,但使用.mouseover$('#test1'+i).mouseover(function()代替.hover){…只需将事件处理程序附加到
upperBoxContainer
并使用jQueryPlease获取
$i
的值就容易多了。请提供某种形式的错误消息,这样我们就可以帮助调试代码。多亏了!Jonathan de M删除的错误。解决方案+1没有意识到必须在函数中封装这样的循环,但我猜如果我使用jquery,我就不会做for循环,所以我从来没有遇到过这个问题+1没有意识到必须在函数中封装这样的循环,但是我想如果我使用jquery,我就不会做for循环,所以我从来没有遇到过这个问题
jQuery(document).ready(function() {
    for (var i = 1; i < 5; i++) {
        alert('images/midimageshover/' + i + '.jpg');
        $('#test1' + i).hover(function() {
            $('#test' + i).attr('src', 'images/midimageshover/' + i + '.jpg');
        });
        $('#test1' + i).mouseout(function() {
            $('#test' + i).attr('src', 'images/midimages/' + i + '.jpg');
        });
    }
});
jQuery(document).ready(function(){
  for (var i = 1; i < 5; i++) {  
    (function(i){
      $('#test1'+i).hover(function(){
        $('#test' + i).attr('src', 'images/midimageshover/' + i + '.jpg');
      });
      $('#test1'+i).mouseout(function(){
        $('#test' + i).attr('src', 'images/midimages/' + i + '.jpg');
      });
    })(i);
  }
});