-6

#sweetIDに一致する3つの要素があります。私はこのような機能を持っています:

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コンソールに単語を無制限に出力します。#sweetしかし、ID を持つ 1 つの div 要素とID を持つ 2 つの span 要素があるため、2 回印刷する必要があり#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 に答える