0

このコードはまだ完全には完成していません。ページ内に「m」がなくなるまで、ページ内のすべての「m」変数を反復しようとしています。現在、「for (m in document)」がありますが、これは間違っていることがわかっています。誰でも正しい構文の正しい方向に私を向けることができますか?

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')
   }
}

ありがとうございました!

4

2 に答える 2

3

スクリプトの先頭ですでにm定義しているので、それを探す必要はありませんin document。配列をループするのと同じようにループします(オブジェクトですが、m配列のようなプロパティがあります)。NodeListlength

for(var i=0; i<m.length; i++) {
    // do something with each m[i]
}
于 2012-04-18T23:49:46.657 に答える
1

3つの問題

  • あなたは間違って繰り返しています
  • スタイルの割り当てが正しくありません:
  • getElementsByClassName空のセットであっても、常にオブジェクトを返します。length プロパティをチェックして、要素が返されるかどうかを確認します。

 

for (var i = 0, len = m.length; i<len; i++) {
    if (m[i].getElementsByClassName('print').length > 0 ){
        m.style.opacity=0.3;
    }
}
于 2012-04-19T00:07:13.827 に答える