不要要求数组中的此元素

ask for not this element in array

本文关键字:元素 数组      更新时间:2023-09-26

我想做一个函数,除了数组中单击的电流。意味着我有这样的东西:

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

提前感谢!

试试这个:

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");
    }
}

这是我的头顶,所以对不准确之处表示歉意:

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

也许这可以做这个把戏...

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;