Javascript 不要在数组中请求此元素
我想做一个函数,除了数组中当前单击的函数。 意思是我有这样的东西:Javascript 不要在数组中请求此元素,javascript,jquery,html,arrays,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
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=[array,with,145,elements]
立方体混合[54]。单击(函数(){
对于(变量i=0;i<145;i++){
var randomnumber=Math.floor(Math.random()*500000);
立方体混合[i]。动画({x:randomnumber,y:randomnumber},randomnumber,“反弹”);
}
我不想让立方体混合[54]成为动画。我怎么能说这样的话呢
cubesmixed[i]除54外
提前谢谢!也许这可以达到这个目的
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");
}
}
试试这个:
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");
}
}
cubesmixed=[array,with,145,elements]
立方体混合[54]。单击(函数(){
对于(变量i=0;i<145;i++){
var randomnumber=Math.floor(Math.random()*500000);
如果(i!=54)){
立方体混合[i]。动画({x:randomnumber,y:randomnumber},randomnumber,“反弹”);
}
}
这是我无法理解的,因此,对于不准确之处,我深表歉意:
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");
}
}
})
var cubesmix=$(“elementsYouCanClick”);
cubesmixed.each(函数(idx,元素){
元素。单击(函数(){
对于(变量i=0;i<145;i++){
如果(i==idx){
继续;
}
var randomnumber=Math.floor(Math.random()*500000);
立方体混合[i]。动画({x:randomnumber,y:randomnumber},randomnumber,“反弹”);
}
}
})
不完全确定,但关键的想法是使用$。each()
函数迭代元素,这为您提供了使用idx
的理由。您使用jQuery对象数组,而不仅仅是包含x
个元素的普通jQuery对象,有什么原因吗?如果(i!=54)cubesmixed[i]。动画({x:randomnumber,y:randomnumber},randomnumber,“bounce”);如果您不知道像if(i!=54){/*do stuff*/}这样简单的事情,只需在函数中使用if(i==54)continue
然后你应该先学习一些基础知识……如果你想避免循环中的大量比较操作,你还可以为所选元素的每一侧的所有项目设置两个FOR循环。不是这样干净的代码,但理论上应该更有效。不幸的是,你不能像那样比较jQuery对象,因为$()
构造函数每次都创建不同的对象。事实上,$(此)=$(此)
始终为false!它仍然无法工作,因为.indexOf()
使用相同的比较,$(此)
是一个全新的对象,永远不会出现在数组中。如果没有$()
?我很确定这是可能的,我会发现如何…^^^谢谢,尽管这很愚蠢。我没有考虑循环中的if语句。
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");
}
}
})