2013-03-28 59 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