2012-04-26 29 views
1

我得到這個Javascript代碼的w3c驗證錯誤,並想知道如果一個善良的紳士/女士會讓我花一點時間採取甘德。W3C驗證錯誤使用此JavaScript片段

// hide all element nodes within some parent element 
function hideAll(parent) { 
    var children = parent.childNodes, child; 
    // loop all the parent's children 
    for (var idx=0, len = children.length; idx<len; ++idx) { /* ERROR HERE */ 
     child = children.item(idx); 
     // if element node (not comment- or textnode) 
     if (child.nodeType===1) { 
      // hide it 
      child.style.display = 'none'; 
     } 
    } 
} 

的錯誤是:

  • 元件 「len」 的未定義
  • 字符 「;」在屬性規格列表不允許

分號在idx<len;是哪裏出了問題。

有人可以解釋我要去哪裏錯了上面的代碼片段?

非常感謝。

回答

1

將其更改爲:

// hide all element nodes within some parent element 
function hideAll(parent) { 
    var children = parent.childNodes, child; 
    // loop all the parent's children 
    var len = children.length; 
    for (var idx=0; idx<len; ++idx) { /* ERROR HERE */ 
     child = children.item(idx); 
     // if element node (not comment- or textnode) 
     if (child.nodeType===1) { 
      // hide it 
      child.style.display = 'none'; 
     } 
    } 
} 
+0

謝謝,裏克。但是,我仍然得到完全相同的驗證錯誤。 – michaelmcgurk 2012-04-26 10:07:47

+0

驗證在此處突出顯示了分號:** idx michaelmcgurk 2012-04-26 10:08:18

+1

嘗試使用其他瀏覽器或清除緩存 – Mediator 2012-04-26 10:08:42

1
  **// hide all element nodes within some parent element 



      function hideAll(parent) 
      { 
       var children = parent.childNodes, child; 

       // loop all the parent's children 
       var len=children.length; 

       for (var idx=0; idx<len; ++idx) 
       { /* ERROR HERE */ 

        child = children.item(idx); 

        // if element node (not comment- or textnode) 

        if (child.nodeType===1) 
        { 
         // hide it 
         child.style.display = 'none'; 
        } 
       } 
     }**