Javascript函数仅通过显式编码工作,而不是在for循环中工作

Javascript函数仅通过显式编码工作,而不是在for循环中工作,javascript,Javascript,我有以下Javascript代码可以完美地工作: $(document).ready(function() { $("#Select1").setDefault(); $("#Select2").setDefault(); $("#Select3").setDefault(); $("#Select4").setDefault(); $("#Select5").setDefault(); $("#Select6").s

我有以下Javascript代码可以完美地工作:

$(document).ready(function() {   
  $("#Select1").setDefault();    
  $("#Select2").setDefault();     
  $("#Select3").setDefault();      
  $("#Select4").setDefault();   
  $("#Select5").setDefault();      
  $("#Select6").setDefault();   
});  
现在,如果我使用以下压缩代码,它将不起作用:

$(document).ready(function() {
  for(i=1; i<=6; i++){
    $("#Select"+i).setDefault();    
  }
}); 
如果我写下以下内容,这本书就可以了:

for(i=1; i<=6; i++){
    alert(i);    
}
有什么想法吗


PS:我使用Chrome和Firefox,循环代码缺少右括号。。。a


使用像Firebug这样的开发工具将为您突出显示这些语法错误。如果您使用的是Chrome hit F12,并且您可以访问JavaScript控制台等。

您可以修复使用循环的现有代码,但是作为一种替代且可能更干净的解决方案,请尝试使用:

假设您在HTML中使用的是来自ID的猜测,则可以使选择器更具体一些:

$('select[id^="Select"]').setDefault();    

好的,为什么不把你的代码放在一把小提琴里,因为我们不知道你的HTML是什么,我们必须假设你使用的ID是选择菜单…因为它有点复杂。有一个Ajax调用可以从Symfony控制器获取响应。JSFIDLE接受HTML、JS和CSS。此外,我在rutmine有一些库,比如JQuery,我在rutmine有一些库,比如JQuery。。。看看JSFIDLE,因为您可以包括框架及其版本您假设for是错误的!不是吗!此外,当i=1时,为什么$Select+i应该与$Select1不同?您假设for是错误的!不是吗请把这个放在小提琴上,我们正在尽力帮助你!我并不是假设您的循环是错误的,而是为您发布的示例提供了更好的解决方案。您在评论中提到您触发了AJAX请求,因此请发布您遇到问题的实际代码;由于AJAX的异步特性,您可能会遇到时间问题。@Mike同意,当任何人被蒙住眼睛时,他们怎么能帮助他们呢?也许您应该在发布之前把真正的代码放在小提琴上。我解决了您最初的问题,这是由于您在审阅之前发布的。为什么要麻烦?我想我会继续前进
$(document).ready(function() {   
    $('[id^="Select"]').setDefault();    
}); 
$('select[id^="Select"]').setDefault();