【发布时间】:2015-02-28 02:48:53
【问题描述】:
是的,这个问题已经被问过很多次了,但这个问题更具体一点。我需要显示/隐藏某个 class 的所有元素的 JavaScript 代码。代码必须与旧版浏览器和 Internet Explorer 兼容,并且占用空间极小。所以,请不要发布 jQuery 解决方案,因为此任务将使用库中 0.01% 的代码。到目前为止,我想出了这个:
var flip = document.getElementsByTagName(_tag);
if (trigger)
for (var i = 0; i < flip.length; i++)
if (flip[i].className == _class) flip[i].style.visibility = 'visible';
else
for (var i = 0; i < flip.length; i++)
if (flip[i].className == _class) flip[i].style.visibility = 'hidden';
由于getElementsByclassName 在 IE 中不起作用,并且大多数常见的解决方案对我来说太庞大了。这段代码是最适合该任务的,还是可以进一步简化? (作为参考,之前的解决方案使用cgi将<style>.myclass {visibility:visible}</class>添加到页面)
【问题讨论】:
-
您可以使用
.className属性获取所有类名称并使用css.display='none' OR css.display=''进行隐藏/显示,或者您可以使用document.querySelectorAll('.myclass')。 -
为什么你的花括号(
{,}) 不见了? -
@Prog:你能说得更具体一点 css.dsiplay,我没听懂吗? @chipChocolate.py:因为它是单行 if trigger then loop,如果执行单个命令,则循环执行单个循环 @Tyr:没有内部循环 - 它在
if和else下是相同的代码,唯一的区别是在能见度中。 -
你能定义你所说的“旧浏览器”是什么意思吗?你的 IE 最低版本是多少?
-
尽可能低(比如说6),因此没有
querySelectorAll也没有getElementsByClassName
标签: javascript html css internet-explorer styles