例子是这个,这不起作用。我的错误是什么?
var i=1;
for(i; i <=165; i++){
jQuery(".tekAlan"+i).click(function() {
jQuery(".tekAlan"+i).addClass("tekAlanSecildi");
});
}
谢谢。
例子是这个,这不起作用。我的错误是什么?
var i=1;
for(i; i <=165; i++){
jQuery(".tekAlan"+i).click(function() {
jQuery(".tekAlan"+i).addClass("tekAlanSecildi");
});
}
谢谢。
您是通过i
引用而不是值传递,所以i
不是指您认为循环运行后的数字。看看这个简单的例子,看看我的意思。
在这种情况下,您可能只使用属性选择器和this
:
jQuery('[class^="tekAlan"]').click(function() {
jQuery(this).addClass("tekAlanSecildi");
});
如果要修复当前代码,则必须使用匿名函数进行遮蔽: i
for(var i = 1; i <= 165; i++){
(function(i) {
jQuery(".tekAlan" + i).click(function() {
jQuery(".tekAlan" + i).addClass("tekAlanSecildi");
});
})(i);
}
Although this is not very clear, you could try something like this
1) add a class to all of your elements
2)
$('.someclass').click(function(){
$(this).addClass('someotherclass');
})
you dont need a for loop.
我猜您只想将类添加到单击的项目中。但是,它总是将类添加到最后一个。那是因为 i 是在 for 结束后访问的,所以它总是包含 165。这样做可以解决您的问题:
var i=1;
for(i; i <=165; i++){
jQuery(".tekAlan"+i).click(function() {
jQuery(this).addClass("tekAlanSecildi");
});
}
jQuery(this)
是受事件影响的元素的引用(在本例中为click
)