对于文档中的变量(Javascript)

时间:2012-04-18 23:46:26

标签: javascript html iteration

此代码尚未完全完成。我正在尝试遍历页面中的所有'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')
   }
}

谢谢!

2 个答案:

答案 0 :(得分:3)

您已经在脚本顶部定义了m,因此您无需查找in document。只需循环它就像循环数组一样(m是一个NodeList对象,但它有一个length属性,就像数组一样):

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

答案 1 :(得分:1)

三个问题

  • 你正在迭代错误
  • 您的样式分配不正确:
  • getElementsByClassName将始终返回一个对象,即使它是一个空集。检查它的长度属性,看看你是否得到任何元素。

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