Javascript 关于数组循环的jQuery问题
我有这样一个数组:Javascript 关于数组循环的jQuery问题,javascript,jquery,Javascript,Jquery,我有这样一个数组: var gridArray = [ 1,2,0,1,2,3,2,1,2,3,4,4,3,2,2,2,0 ] $('li.node').each(function() { loop through the array var rndTile = the current array digit $(this).css({ 'background-image'
var gridArray = [ 1,2,0,1,2,3,2,1,2,3,4,4,3,2,2,2,0 ]
$('li.node').each(function() {
loop through the array
var rndTile = the current array digit
$(this).css({ 'background-image': 'url(images/'+arrayDigit+'.jpg' });
});
我想要一个jQueryeach()
函数,如下所示:
var gridArray = [ 1,2,0,1,2,3,2,1,2,3,4,4,3,2,2,2,0 ]
$('li.node').each(function() {
loop through the array
var rndTile = the current array digit
$(this).css({ 'background-image': 'url(images/'+arrayDigit+'.jpg' });
});
如何实现这一点?您需要向每个回调传递参数
$(gridArray).each(function (i, val) {
// i is the index in this loop.
// val is the value at gridArray[i] in this loop.
});
请查看for jQuery.each。函数签名为:
jQuery.each(集合、回调(indexInArray、valueOfElement))
我不能100%确定您想要实现什么,因此很难给出一个具体的示例,但这应该能帮助您实现。假设每个数组成员都对应一个
:
$('li.node').each(function(i) {
var rndTile = gridArray[i];
$(this).css({ 'background-image': 'url(images/'+rndTile+'.jpg' });
});
通常,在数组上循环使用for in
或更糟的jQuerys.each()
,这是一个不好的想法。这样的循环意味着大量不必要的开销
如果您不知道要处理多少项(这实际上意味着只对对象使用它),则只对或中的..使用
使用普通的for
循环迭代数组
for(var n = 0, len = gridArray.length; n < len; n++){
}
for(var n=0,len=gridArray.length;n
不要在或.each()
中使用for..循环数组!不是要阻止(或贬低)所有狂热的web开发人员,而是请在学习库之前先学习JavaScript!(即jQuery、MooTools、Dojo或Prototype)它将使您成为更好的开发人员,并且您的代码将更快/更好@IndeiInvader:这条评论对我的帖子没有意义我想这有点离题了,我想说的是这应该是显而易见的。但是,因为大多数新的JS开发人员不学习这种语言,他们学习jQuery,等等,他们最终无意中编写了糟糕的代码,或者更糟糕的是,当他们发现jQuery时,他们感到困惑JavaScript!tl;dr:你说得对,for
比好。each()
@Neurofluxation-如果你要使用.each()
在数组上迭代,你不需要创建jQuery对象。只需执行$.each(gridArray,function(i,val){…})代码>