我有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功能,但我需要这个功能,我不想删除它,有另一种解决方法吗?
答案 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 );