Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于数组循环的jQuery问题_Javascript_Jquery - Fatal编程技术网

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' });
            });
我想要一个jQuery
each()
函数,如下所示:

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){…})