使用类而不是id在JavaScript中隐藏显示
Hide show in JavaScript using classes instead of ids
我之前看到过关于在JavaScript中尝试使用类而不是id来隐藏显示的问题。然而,我还没有找到任何确切的答案。我需要使用一个类,因为我有一个常见问题部分,我在那里输入问题并隐藏/显示答案。这是我使用id的代码:
<script type="text/javascript">
function toggle() {
var ele = document.getElementById("toggleText");
var text = document.getElementById("displayText");
if(ele.style.display == "block") {
ele.style.display = "none";
text.innerHTML = text() + " show";
}
else {
ele.style.display = "block";
text.innerHTML = text() + " hide";
}
}
</script>
如何更改此JavaScript以使用类?我尝试将getElementById更改为getElementByClassName,但我不知道为什么不起作用。
您缺少类和ID之间的概念差异。类不是唯一的,因此在查询类时将无法检索单个元素。你肯定可以得到一个只有一个元素的列表,但它仍然是一个列表,因为同一类可能有多个元素。另一方面,ID是唯一的,这就是为什么你可以通过使用一种方法来获取ID来选择直接元素的原因。
按类检索对象的正确JavaScript方法是getElementsByClassName
(请注意,通过s
,它将返回元素列表,而不是您可能预期的单个结果)。
您必须解析返回的列表才能获得所需的元素。
为了便于说明,您可以通过执行以下操作来切换第一个返回元素的display
属性:
var displayedTexts = document.getElementsByClassName("displayText");
displayedTexts[0].style.display = "none";
您可以在这里看到一个带有简单示例的JS Fiddle。
相关文章:
- 如何使用javascript隐藏文本
- 如何在运行时使用javascript隐藏图像
- 什么'这是用javascript隐藏和显示表中所有行的最快方法
- 如何获取外部网站上被javascript隐藏的url
- 仅使用Javascript隐藏/显示元素,而不会弄乱DOM
- 如何使用 JavaScript 隐藏内部类元素
- 如何使用javascript隐藏表单的选项
- 当其他事件发生时,用javascript隐藏的文本框将变为可见
- Javascript隐藏潜水收割者
- iOS中的上一个/下一个按钮对于通过JavaScript隐藏/显示的输入被禁用
- 使用Javascript隐藏多选框中的选项
- 视频(自动播放)通过javascript隐藏,但已经在页面加载时启动
- Javascript变量在IE中不起作用||用Javascript隐藏选项
- Javascript隐藏元素并放置其他内容
- 使用JavaScript隐藏选择选项
- Javascript-隐藏列的复选框
- 如果我用javascript隐藏了一个文本输入元素,那么其他javascript函数仍然可以访问输入到其中的值
- 用javascript隐藏谷歌可视化列
- Javascript:隐藏/使其难以理解客户端对象
- 如何使用javascript隐藏上传文件元素