鍍金池/ 問答/HTML/ jquery $() 中放變量不生效

jquery $() 中放變量不生效

      var G1 =[];
      var sz =1;
      var name ='.G'+sz;
      $(".G"+sz).click(function(){
          alert("xxx");
             alert( G1[sz] = $(this).attr('value'));
               sz++;
      })
      
      選擇器只對第一次的對象綁定點擊事件 也就是 .G1;為什么會這樣
回答
編輯回答
咕嚕嚕

JS代碼是自上而下執(zhí)行的,當(dāng)執(zhí)行到

$(".G"+sz).click(function(){})

這一句的時候,綁定的是.G1這個元素,然后你后面的點擊事件,只會執(zhí)行里面的

alert("xxx");
alert( G1[sz] = $(this).attr('value'));
sz++;

$(".G"+sz).click(function(){})沒有任何關(guān)系了。

2018年5月4日 18:04
編輯回答
拼未來

你這里沒有用循環(huán),所以只會執(zhí)行一次,不會對第二次第三次的對象綁定,sz++執(zhí)行完后,就沒有了(而且你位置放的可能有問題),你可能以為sz++;執(zhí)行完后,上面的sz會自動增加再執(zhí)行一次,不會的,你要通過循環(huán)來指定,上面的 sz 只執(zhí)行一次,后面即使值被修改了,前面的 sz 也還是原來的值;后面的 sz 是后面的值;
你可能是想這樣,你看是不是?

var G1 = [];
var sz = 1;
var name = '.G' + sz;
while (sz < 10) {
    $(".G" + sz).click(function() {
        alert("xxx");
        alert(G1[sz] = $(this).attr('value'));
    });
    sz++;
}

建議先學(xué) js ,再學(xué) jquery,js 學(xué)好了,jquery 就是查查文檔就好了

2018年9月15日 20:06
編輯回答
單眼皮

因為你沒有寫循環(huán)啊,樓上的寫法就是對的。
另外你這個思路不太對勁,既然要get同類型的東西進行相同的處理,為啥不起一個相同的名字一起get到呢?

$('.G').eq(index)

來獲取每一個不是更好嗎。。。

2018年8月9日 11:23
編輯回答
背叛者
var G1 =[];
for(var sz = 1;sz < 10;i++) {
    $('.G'+sz).click(function(){
      
  G1.push($(this).attr('value'));
}

大概是這個意思?沒給DOM結(jié)構(gòu)暫定是10個吧。另外這個用事件代理寫會更好。

2017年4月4日 19:15