请求不要在数组中使用此元素

时间:2013-10-17 10:12:47

标签: javascript jquery html arrays

我想做一个函数,除了当前点击的数组。 意味着我有这样的事情:

cubesmixed = [array, with, 145, elements]
cubesmixed[54].click(function() { 
    for(var i = 0; i < 145; i++) {
    var randomnumber=Math.floor(Math.random()*500000);
    cubesmixed[i].animate({ x: randomnumber, y: randomnumber }, randomnumber, "bounce");
}

我不希望cubesmixed[54]动画。怎么说呢 cubesmixed[i] except 54

提前感谢!

3 个答案:

答案 0 :(得分:1)

试试这个:

cubesmixed = [array, with, 145, elements]
cubesmixed[54].click(function() { 
    for(var i = 0; i < 145; i++) {
    var randomnumber=Math.floor(Math.random()*500000);
    if(i!=54)){
        cubesmixed[i].animate({ x: randomnumber, y: randomnumber }, randomnumber, "bounce");
    }
}

答案 1 :(得分:0)

这不是我的头脑,所以对不准确的事道道歉:

var cubesmixed = $("elementsYouCanClick");

cubesmixed.each(function(idx, element){
    element.click(function() { 
        for(var i = 0; i < 145; i++) {
            if (i === idx) { 
                continue;
            }

            var randomnumber = Math.floor(Math.random()*500000);

            cubesmixed[i].animate({ x: randomnumber, y: randomnumber }, randomnumber, "bounce");
        }
    }
})

不完全确定,但关键的想法是使用$.each()函数迭代元素,这使您可以使用idx

答案 2 :(得分:-1)

也许这可以解决问题......

cubesmixed = [array, with, 145, elements]
cubesmixed[54].click(function() { 
  for(var i = 0; i < 145; i++) {
    if(cubesmixed[i] == $(this)) continue;
    var randomnumber=Math.floor(Math.random()*500000);
    cubesmixed[i].animate({ x: randomnumber, y: randomnumber }, randomnumber, "bounce");
  }
}

修改

将行if(cubesmixed[i] == $(this)) continue;归为

if(i == cubesmixed.indexOf($(this))) continue;