在javascript中无限循环...循环

时间:2013-05-11 14:45:39

标签: javascript arrays function for-loop

我有3个与#sweet ID匹配的元素。我有这样的功能:

var element=document.querySelectorAll("#sweet");

for (var y=0; y<element.length; y++)
{

if (element[y].nodeName == "DIV")
  {
    element[y].innerHTML='';
    var length=element[y].offsetWidth;

    for (i=0; i<n; i++) {
       console.log(i);
    }

 /////////////////////////
 var resizeTimer = 0;
    function doResize()
    {
        if (resizeTimer)
            clearTimeout(resizeTimer);

        resizeTimer = setTimeout(function() {rainbow(n, color);}, 0);
    }

    doResize();
 ////////////////////////

  }
  else if (element[y].nodeName == "SPAN")
  {
    console.log("span");
  }

}

但是有问题。它在控制台中无限制地打印span个字。但它必须打印2次,因为我有1个带有#sweet ID的div元素和带有#sweet ID的2个span元素。是什么导致这个问题?也许,这是因为我有settimeout功能,但我需要这个功能,我不想删除它,有另一种解决方法吗?

2 个答案:

答案 0 :(得分:3)

您可以将变量作为参数传递给它们:

var doitman = function(items, option2){
    var item1 = items[0];
    var item2 = items[2];
    // your code here
}
var items = [item1, item2, item3];
doitman( items, option2 );

我认为你应该在数组上查看this page

答案 1 :(得分:2)

function doitman (ary, option2) {
   var item1 = ary [0];
   var item2 = ary [1];
   var item3 = ary [2];

   // whatever
}

doitman ( [1, 2, 3], option );