gpt4 book ai didi

javascript - 切换显示 :none to all tags in JavaScript (no jQuery) without classes : is it possible?

转载 作者:行者123 更新时间:2023-11-29 10:18:24 24 4
gpt4 key购买 nike

我读过类似的帖子,但我只发现它说要在 HTML 中添加类来做我想做的事,所以,基本上我有一个按钮,当我想点击它时,它会隐藏所有代码 HTML 标签,并且当我再次单击它时,它会显示它们。因为我在一个页面中有很多代码标签,所以我需要花很多时间才能为每个代码标签添加一个类。我一直在尝试一些事情,例如

if(document.getElementsByTagName("CODE").style.display === "block"){
document.getElementsByTagName("CODE").style.display = "none"
}

以及与之相关的一些东西,所有类似的代码,但它们要么使我的浏览器崩溃,要么无法正常工作。我的问题是,是否真的必须使用类名并检查它是否可以比较类名,正如我在上面的代码中“所做的”,所有标签的显示内容? (也许每个元素都用 for 循环循环,我也试过了,但没有结果。)到目前为止,我用我很少的知识尝试了所有可能的事情(我还在学习 javascript)。我真的很想知道我是否正在尝试做一些非常先进的事情,或者我只是不知道如何完成。

谢谢,我希望没有另一个这样的问题,我已经阅读了所有建议的问题,没有一个(除了它说使用类的)是这样的。

他们都建议加类,所以我觉得我在尝试做一些真正不可能的事情。我还不喜欢 jQuery,所以请不要谈论它,谢谢。 (首先我必须学习好的 JavaScript)

最佳答案

您必须遍历 document.getElementsByTagName("CODE") 的结果,它是一个类数组变量。这是一项 jQuery 功能,可让您将 .css() 写入对象列表并处理所有对象。你需要类似的东西

ar = document.getElementsByTagName("code");
for (i = 0; i < ar.length; ++i)
ar[i].style.display = "none";

如果您需要切换code 可见性,请使用此代码

ar = document.getElementsByTagName("code"); 
for (i = 0; i < ar.length; ++i)
{
if(ar[i].style.display != "none") //the element is visible
{
ar[i].style.display = "none";
}
else
{
ar[i].style.display = "block"; //If you need to make it block explicitly, otherwise ""
}
}

请注意,style.display 属性最初为空,对于 code 标记默认为 inline,但可以显式设置为其他值。将其重置为 '' 会导致恢复状态。

如果不修改displaymode需要来回改变可见性,需要保存之前的mode(code标签不仅可以显示在 block 模式)。可以这样做:

ar = document.getElementsByTagName("code"); 
for (i = 0; i < ar.length; ++i)
{
if(ar[i].style.display != "none") //the element is visible, "" or "blocK" or some other value
{
ar[i].saved_display = ar[i].style.display; //Save the display mode to a new property of the tag
ar[i].style.display = "none"; //And hide the element
}
else
{
if (typeof ar[i].saved_display === "undefined") //It's the first time we see the element. Display it in default mode
ar[i].style.display = "";
else
ar[i].style.display = ar[i].saved_display; //We know how the element was shown before we hid it, restoring
}
}

关于javascript - 切换显示 :none to all tags in JavaScript (no jQuery) without classes : is it possible?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16887718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com