使用for()克隆JavaScript

0 javascript jquery for-loop cloning

示例是这个,这不起作用.我的错是什么?

var i=1;
for(i; i <=165; i++){
    jQuery(".tekAlan"+i).click(function() {   
    jQuery(".tekAlan"+i).addClass("tekAlanSecildi");    
    });
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

Ble*_*der 6

i通过引用传递,而不是通过值传递,因此i不是指您在循环运行后认为的数字.看看这个简单的例子,看看我的意思.

在这种情况下,您可以只使用属性选择器和this:

jQuery('[class^="tekAlan"]').click(function() {   
    jQuery(this).addClass("tekAlanSecildi");    
});
Run Code Online (Sandbox Code Playgroud)

如果要修复当前代码,则必须使用匿名函数进行阴影 i处理:

for(var i = 1; i <= 165; i++){
    (function(i) {
        jQuery(".tekAlan" + i).click(function() {   
            jQuery(".tekAlan" + i).addClass("tekAlanSecildi");    
        });
    })(i);
}
Run Code Online (Sandbox Code Playgroud)