我试图同时折叠所有导航栏使用此代码,但它似乎并没有被做任何事情:
var toggleOffAll = function() {
var x = document.getElementsByTagName('nav');
var j;
for (j = 0; j < j.length; j++){
x[j].style.display='none';
};
};
您当前的for loop
是循环的,而不是循环0
倍,其中"n"
是你有导航元素的数量n
倍。
更改此:
j < j.length;
为此:
j < x.length;
如果你不与IE11的兼容性而言,你可以使用forEach()方法,而不是像这样:
document.querySelectorAll('nav').forEach(function(e){
e.style.display='none';
})
或者,如果你是开放的使用JavaScript ES6 +,您还可以通过使用箭头功能,而不是像这样缩短了上面的代码一行:
document.querySelectorAll('nav').forEach(e=>e.style.display='none');
注:如果您计划去与ES6 +方法,您将需要使用JavaScript编译器一样Babel您ES6 +代码转换为JavaScript代码对生产向后兼容的版本,所以它会支持当前和旧的浏览器或环境。
jQuery的就好办多了:
$('nav').css("display", "none");