使用GetElementsByCassName JavaScript添加类
我正在将一个jQuery站点转换为香草javascript,并寻求将一行简单的jQuery转换为javascript的最佳方法的建议 jQuery使用GetElementsByCassName JavaScript添加类,javascript,css,Javascript,Css,我正在将一个jQuery站点转换为香草javascript,并寻求将一行简单的jQuery转换为javascript的最佳方法的建议 jQuery $(“.div_class”).css({display:'none'}) 任何在纯javascript中仅使用类执行此操作的建议都会 非常有帮助 谢谢选择具有该类名的所有元素: var allEls = document.getElementsByClassName('div_class'); 这将返回一个数组,因此您必须循环遍历每个元素,并将每
$(“.div_class”).css({display:'none'})代码>
任何在纯javascript中仅使用类执行此操作的建议都会
非常有帮助
谢谢选择具有该类名的所有元素:
var allEls = document.getElementsByClassName('div_class');
这将返回一个数组,因此您必须循环遍历每个元素,并将每个显示更改为none
,如下所示:
for(var i=0; i < allEls.length; i++){
allElls[i].style.display = 'none'
}
for(变量i=0;i
请尝试以下几行:
var div_class = document.getElementsByClassName('div_class');
for (var div in div_class) {
div.style.display = 'none';
}
我认为您的困惑是因为document.getElementsByClassName('div_class')
返回一个Array
。。。正因为如此,我使用了一个for..in
-循环来迭代前面数组的每个匹配项
希望有帮助。尝试使用document.getElementsByName
获取所需元素
[].slice.bind(document.getElementsByClassName("div_class"))().forEach(function(itm){
itm.style.display = "none";
});
并通过将类似数组的对象绑定为slice
的this
值,将其转换为数组并调用它。现在迭代返回的数组并设置其display属性
您也可以直接使用forEach
来缩短它
[].forEach.bind(document.getElementsByClassName("div_class"),function(itm){
itm.style.display = "none";
})();
我的朋友,你可能是个忍者。@newneub:)很乐意帮忙!:)您可以像这样进一步简化它,删除slice()
步骤:[].forEach.call(document.getElementsByClassName('div_class'),函数(el){el.style.display='none';});.bind
甚至不是必需的,因为.call
的第一个参数设置调用[].forEach
的上下文.call
进一步节省了必须在末尾执行绑定的forEach
函数的步骤:.call
在一个步骤中设置上下文并执行函数。:)@jpec每个人都是这样写的。只是为了改变一下,我是这样写的:)我阅读了算法,使用bind时不会有任何性能缺陷。:)Hey抱歉,它没有返回数组,它返回类似数组的对象,GetElementsByCassName返回找到的元素的HTML集合: