javascript - 用 JS 调用多个 getElementsByClassName()
问题描述
我现在对让我的 JS 处理多个类元素感到困惑。目前在代码中它只是改变了显示:没有它可以找到的第一个 div。我已经阅读了一些教程,但直到现在我无法在我的 js 中实现它并让它工作。
有人能帮我解决这个问题吗?提前致谢!
function showHideEnglish() {
var english = document.getElementsByClassName("text__english")[0];
var german = document.getElementsByClassName("text__german")[0];
german.style.display = "none";
if(english.style.display == "block") {
german.style.display = "none";
}
else {
english.style.display = "block";
}
}
function showHideGerman() {
var english = document.getElementsByClassName("text__english")[0];
var german = document.getElementsByClassName("text__german")[0];
english.style.display = "none";
if(german.style.display == "block") {
english.style.display = "none";
}
else {
german.style.display = "block";
}
}
<button onclick="showHideEnglish();">English</button>
<button onclick="showHideGerman();">German</button>
<div class="text__english"style="display:block;">This text is English</div><br>
<div class="text__german" style="display:none;">dieser Text ist auf Deutsch</div><br>
<div class="text__english"style="display:block;">This text is English</div>
<div class="text__german" style="display:none;">dieser Text ist auf Deutsch</div>
解决方案
无论页面上有多少元素,这都有效:
function showHideEnglish() {
var german = document.getElementsByClassName("text__german");
for (var i = 0; i < german.length; i++) {
german[i].style.display = "none";
}
var english = document.getElementsByClassName("text__english");
for (var i = 0; i < english.length; i++) {
english[i].style.display = "block";
}
}
function showHideGerman() {
var german = document.getElementsByClassName("text__german");
for (var i = 0; i < german.length; i++) {
german[i].style.display = "block";
}
var english = document.getElementsByClassName("text__english");
for (var i = 0; i < english.length; i++) {
english[i].style.display = "none";
}
}
<button onclick="showHideEnglish();">English</button>
<button onclick="showHideGerman();">German</button>
<div class="text__english" style="display:block;">This text is English</div><br>
<div class="text__german" style="display:none;">dieser Text ist auf Deutsch</div><br>
<div class="text__english" style="display:block;">This text is English</div>
<div class="text__german" style="display:none;">dieser Text ist auf Deutsch</div>
推荐阅读
- winforms - csv文件的OleDB连接字符串的正确格式是什么
- excel - 来自工作簿单元格的 Excel VBA 实时用户窗体标签
- excel - EXCEL - 使用 INDEX,MATCH 查找文件编号.. 但文件编号被回收。希望添加等于或在“日期”之后的条件
- android-studio - 我可以根据 productFlavors 加载功能模块吗?
- javascript - kibana-plugins 中 kibana 类型的自动完成
- apache-flink - Apache Flink - 在尊重最大并行度的同时重新调整工作
- date - 按日期批量创建带有子文件夹的文件夹
- c# - 应用程序洞察记录错误所用的确切时间是多少
- django - Django 开发服务器显示错误的项目数据
- html - React - 根页面上的活动类