2013-05-11 2 views
-6

나는 #sweet ID와 일치하는 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 요소와 #sweet ID가있는 2 개의 스팬 요소가 있기 때문에 2 번 인쇄해야합니다. 이 문제의 원인은 무엇입니까? 아마, 내가 settimeout 함수를 가지고 있기 때문에,하지만이 함수가 필요해, 나는 그것을 제거하고 싶지 않다, 또 다른 해결 방법이 있을까?

+6

구문 오류가 발생했습니다. 당신은 당신이하고 싶은 것을 더 명확하게 설명해야 할 것입니다. – Pointy

+0

@Pointy 명확하게 설명했는데 자바 스크립트 함수에서 하나의 배열로 항목을 사용하고 싶었습니다 –

답변

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

'var items = [item1, item2, item3]; '은 일반적으로 배열을 선언하는 가장 좋은 방법으로 받아 들여집니다 (' 새로운 배열 (...)'). – nnnnnn

+0

@nnnnnn 감사합니다. 나는 대답을 편집했다. – Bill

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

    // whatever 
} 

doitman ([1, 2, 3], option); 
관련 문제