var G1 =[];
var sz =1;
var name ='.G'+sz;
$(".G"+sz).click(function(){
alert("xxx");
alert( G1[sz] = $(this).attr('value'));
sz++;
})
选择器只对第一次的对象绑定点击事件 也就是 .G1;为什么会这样
var G1 =[];
var sz =1;
var name ='.G'+sz;
$(".G"+sz).click(function(){
alert("xxx");
alert( G1[sz] = $(this).attr('value'));
sz++;
})
选择器只对第一次的对象绑定点击事件 也就是 .G1;为什么会这样
var G1 =[];
for(var sz = 1;sz < 10;i++) {
$('.G'+sz).click(function(){
G1.push($(this).attr('value'));
}
大概是这个意思?没给DOM结构暂定是10个吧。另外这个用事件代理写会更好。
因为你没有写循环啊,楼上的写法就是对的。
另外你这个思路不太对劲,既然要get同类型的东西进行相同的处理,为啥不起一个相同的名字一起get到呢?
$('.G').eq(index)
来获取每一个不是更好吗。。。
JS代码是自上而下执行的,当执行到
$(".G"+sz).click(function(){})
这一句的时候,绑定的是.G1这个元素,然后你后面的点击事件,只会执行里面的
alert("xxx");
alert( G1[sz] = $(this).attr('value'));
sz++;
与$(".G"+sz).click(function(){})
没有任何关系了。
10 回答11.6k 阅读
2 回答3.1k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
2 回答2.1k 阅读✓ 已解决
4 回答2.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
你这里没有用循环,所以只会执行一次,不会对第二次第三次的对象绑定,sz++执行完后,就没有了(而且你位置放的可能有问题),你可能以为sz++;执行完后,上面的sz会自动增加再执行一次,不会的,你要通过循环来指定,上面的 sz 只执行一次,后面即使值被修改了,前面的 sz 也还是原来的值;后面的 sz 是后面的值;
你可能是想这样,你看是不是?
建议先学 js ,再学 jquery,js 学好了,jquery 就是查查文档就好了