2013-03-28 60 views
0
 for (var i = 1; i < 81; i++){ 
      if($(this).hasClass('member-'+i)){ 
       ('promote'+i) = true; 
      } 
     } 

我有80個可放置的框。每個人都有一個名爲member-1,member-2等的id,當有人將一個項目拖入框中時,該變量將轉換爲true並傳遞給另一個函數。使用for循環和if語句來檢查編號的id名稱

到目前爲止,我發現這是行不通的。我不知道爲什麼。它在一個droppable下拉功能。

因爲我有80個盒子...我不想手動輸入它們。

+3

你有什麼期望'(「促進」 + 1)=真的嗎? – elclanrs 2013-03-28 05:39:31

+0

我期望將promotion1,promotion2傳遞給另一個函數。所以當它設置爲true時,發生了一些事情 – user2206436 2013-03-28 05:45:24

+0

我實際上不能用這種方式將變量設置爲true,因爲它將所有的設置爲true。 有沒有更好的方法將與類號關聯的唯一變量設置爲true? – user2206436 2013-03-28 06:48:45

回答

0

使promote成爲一個數組,而不是80個不同的變量。然後,你可以這樣做:

var promote = []; 
    for (var i = 1; i < 81; i++){ 
     if($(this).hasClass('member-'+i)){ 
      promote[i] = true; 
     } 
    } 
0

好多是隻看到確實存在着階級,而不是測試了81個不同的類別:

var matches, promotes = [], cls = this.className; 
var regex = /member-(\d+)/g; 
while (matches = regex.exec(cls)) { 
    // matches[1] contains the number from the member-xx class name 
    promotes.push(parseInt(matches[1], 10)); 
} 
// promotes is an array that contain a list of the member-xx numbers that exist 
// on this object