jQuery中的简单循环迭代器
一个非常简单的问题。如何在简单的for循环中生成以下脚本: for循环的用途与Python中的相同:jQuery中的简单循环迭代器,jquery,Jquery,一个非常简单的问题。如何在简单的for循环中生成以下脚本: for循环的用途与Python中的相同: for i in range(3): a, b = "#toggle-" + str(i), "#toggle-list-" + str(i) 谢谢 在document ready回调中使用for循环进行迭代。确保关闭i,以便它不会在单击事件处理程序中发生更改 jQuery(document).ready(function(){ for(var i = 0 ; i < 3; i+
for i in range(3): a, b = "#toggle-" + str(i), "#toggle-list-" + str(i)
谢谢 在document ready回调中使用for循环进行迭代。确保关闭
i
,以便它不会在单击事件处理程序中发生更改
jQuery(document).ready(function(){
for(var i = 0 ; i < 3; i++){
(function(i){
jQuery("#toggle-"+i).click(function(){
jQuery("#toggle-list-"+i).slideToggle(500);
});
})(i)
}
});
jQuery(文档).ready(函数(){
对于(变量i=0;i<3;i++){
(职能(一){
jQuery(“#切换-”+i)。单击(函数(){
jQuery(“#切换列表-”+i).slideToggle(500);
});
})(一)
}
});
$(文档).ready(函数(){
对于(i=0;i<3;i++)
{
$('#切换-'+i)。单击(函数(){
$('#切换列表-'+i).slideToggle(500);
});
};
});
但我强烈建议把id改成名字
而不是切换0;切换1;toggle2只需输入一个名称=toggle
然后,您只需获得如下切换数组:
var-toggles=$('toggle')代码>
然后使用它。您的代码违反了DRY原则
对于每个事件处理程序,不需要有一个单独的ready
块
您应该考虑使用类和类选择器而不是ID选择器,并使用jQuery的权限来选择目标元素。
在这里使用循环是一个错误的选择/没有必要。大多数jQuery方法都被设计为在幕后迭代集合
以下是使用逗号分隔选择器的示例:
jQuery(document).ready(function($){
$("#toggle-0, #toggle-1, #toggle-2").click(function() {
var num = this.id.replace('toggle-', '');
$("#toggle-list-" + num).slideToggle(500);
});
});
上面的代码片段是缩小原始代码的一种方法,但假设您想向选择器添加10个以上的ID。现在您的代码是不可维护的,没有任何意义。改用类 您实际上只需要一个文档就绪函数。为什么不给每个ID一个类,然后查询该类并执行$(this).slideToggle(500)?
$(document).ready(function(){
for(i = 0; i < 3; i++)
{
$('#toggle-'+i).click(function(){
$('#toggle-list-'+i).slideToggle(500);
});
};
});
jQuery(document).ready(function($){
$("#toggle-0, #toggle-1, #toggle-2").click(function() {
var num = this.id.replace('toggle-', '');
$("#toggle-list-" + num).slideToggle(500);
});
});