2012-04-18 12 views
0

このコードはまだ完全には完成していません。私はページ内にmがなくなるまで、ページ内のすべての 'm'変数を反復しようとしています。今、私は間違っていることが分かっています。誰でも正しい構文の正しい方向に向けることができますか?文書内の変数(Javascript)

var m = document.getElementsByClassName('project') 
    var n = document.getElementsByClassName('web') 
    var o = document.getElementsByClassName('print') 
    var p = document.getElementsByClassName('illustration') 

function projectFilter(type){ 
    if (type === 'print'){ 
     for (m in document){ 
     if (getElementsByClassName('print') != null){ 
      m.style(opacity=0.3) 
      console.log("Whatshappening") 
     } 
    } 
    if (type === 'web'){ 
     console.log('webbyshit') 
    } 
    if (type === 'illustration'){ 
     console.log('illustrating') 
    } 
    if (type === 'project'){ 
     console.log('EVERYTHING') 
    } 
} 

ありがとうございます!

答えて

3

すでにmがスクリプトの上部に定義されているため、in documentを探す必要はありません。

for(var i=0; i<m.length; i++) { 
    // do something with each m[i] 
} 
1

三つの問題

  • あなたは間違って
  • あなたを反復している:あなたのようなだけのループをループは、配列(mNodeListオブジェクトですが、配列がやるように、それはlength性質を持っている)だろうスタイルの割り当てが正しくありません。
  • getElementsByClassNameは、空のセットでもオブジェクトを常に返します。長さプロパティを確認して、要素が戻ったかどうかを確認してください。

 

for (var i = 0, len = m.length; i<len; i++) { 
    if (m[i].getElementsByClassName('print').length > 0){ 
     m.style.opacity=0.3; 
    } 
} 
関連する問題