-6

#sweet我有 3 个与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 个带有 ID 的 div 元素#sweet和 2 个带有 ID 的 span 元素#sweet。这个问题是什么原因造成的?也许,是因为我有settimeout功能,但是我需要这个功能,我不想删除它,有其他解决方法吗?

4

2 回答 2

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

我认为您应该查看有关数组的此页面。

于 2013-05-11T14:54:13.557 回答
2
function doitman (ary, option2) {
   var item1 = ary [0];
   var item2 = ary [1];
   var item3 = ary [2];

   // whatever
}

doitman ( [1, 2, 3], option );
于 2013-05-11T15:00:26.557 回答