2014-02-17 39 views
0

我有一個問題,我的功能及其arguments ......這是代碼:的Javascript:函數及其參數

function elab(){ 

    var up = arguments[0]; 
    var id = arguments[1]; 
    len = arguments.length - 3; 

    for(var a = 1; a <= 10; a++){ 

     arg = (arguments[2] + a); // id tag html : [nome][num] 
     document.getElementById(arg).style.display = "block"; 
    } 

    for (var i = 3; i < len; i++) { 

     alert('test1'); 
     document.getElementById(arguments[i]).style.display = "none"; 
     alert('test2'); 
    } 

    change_price(up, id); 
} 

腳本掛在第二個週期:它打印'test1'但不'test2'。 錯誤在哪裏? THX所有;)

+1

什麼是id標籤html:[nome] [num]'應該這樣做? – user2357112

+0

你是不是指'(參數[(2 + a)]''? – ponciste

+0

它可能不會掛起,它更可能因錯誤而絆倒;最可能的錯誤是該元素無法找到。 –

回答

0

請注意,這個建議應該用於不確定所有的東西:

for (var i = 3; i < len; i++) { 
    var node = document.getElementById(arguments[i]); 

    if (node) { 
     node.style.display = "none"; // block 
    } 
} 

換句話說,始終如果你不是100%肯定,如果測試一個元素都可以找到。更加迂腐:

for (var i = 3; i < len; i++) { 
    var node = document.getElementById(arguments[i]); 

    if (!node) { 
     throw "Element " + arguments[i] + " not found."; 
    } 
    node.style.display = "none"; // block 
}