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