如何使用 javascript 切换一个部分同时隐藏其他部分?
how to toggle a section whilst hiding the others using javascript?
我从其他人那里找到了一个代码片段,解释了如何在隐藏另一个元素的同时打开一个元素,尽管它是用 jquery 制作的。我的考试需要纯 Javascript 中的相同代码。现在我已经转换了它,有没有人知道我的问题是什么?我收到控制台警告
"(index):933 Uncaught TypeError:
document.querySelector(...).hideElement is not a function
at hideElement ((index):933)
at showDiv ((index):927)
at HTMLDivElement.onclick ((index):908)"
任何人都可以帮我创建一个新的 Javascript 函数来打开隐藏部分并隐藏其他部分,或者帮我修复我的代码吗?
这里是原jQuery代码:
function showDiv(data) {
$("#ele-" + data).addClass('visibleClass');
hideElement(6, data);
}
function hideElement(total, active) {
for (i = 1; i <= total; i++) {
if (i != active)
$("#ele-" + i).removeClass('visibleClass');
}
}
.press {
background: red;
float: left;
padding: 20px;
margin-left: 20px;
}
.visibleClass {
display: block !important;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div id="x_1" class="press" onclick="showDiv('1')">1</div>
<div id="x_2" class="press" onclick="showDiv('2')">2</div>
<div id="x_3" class="press" onclick="showDiv('3')">3</div>
<div id="x_4" class="press" onclick="showDiv('4')">4</div>
<div id="x_5" class="press" onclick="showDiv('5')">5</div>
<div id="x_6" class="press" onclick="showDiv('6')">6</div>
<br><br><br><br>
<div id="ele-1" style="display: none;">show data 1</div>
<div id="ele-2" style="display: none;">show data 2</div>
<div id="ele-3" style="display: none;">show data 3</div>
<div id="ele-4" style="display: none;">show data 4</div>
<div id="ele-5" style="display: none;">show data 5</div>
<div id="ele-6" style="display: none;">show data 6</div>
这是我将其转换为 javascript:
的方法
function showDiv(data) {
document.querySelector("#ele-" + data).classList.add('visibleClass');
hideElement(6, data);
}
function hideElement(total, active) {
for (i = 1; i <= total; i++) {
if (i != active)
document.querySelector("#ele-" + i).removeClass('visibleClass');
}
}
.press {
background: red;
float: left;
padding: 20px;
margin-left: 20px;
}
.visibleClass {
display: block !important;
}
<div id="x_1" class="press" onclick="showDiv('1')">1</div>
<div id="x_2" class="press" onclick="showDiv('2')">2</div>
<div id="x_3" class="press" onclick="showDiv('3')">3</div>
<div id="x_4" class="press" onclick="showDiv('4')">4</div>
<div id="x_5" class="press" onclick="showDiv('5')">5</div>
<div id="x_6" class="press" onclick="showDiv('6')">6</div>
<br><br><br><br>
<div id="ele-1" style="display: none;">show data 1</div>
<div id="ele-2" style="display: none;">show data 2</div>
<div id="ele-3" style="display: none;">show data 3</div>
<div id="ele-4" style="display: none;">show data 4</div>
<div id="ele-5" style="display: none;">show data 5</div>
<div id="ele-6" style="display: none;">show data 6</div>
检查可见的 class 是否存在 document.querySelector('.visibleClass')
并将其删除。
然后将 visibleClass
设置为单击的元素。
function showDiv(data) {
if (document.querySelector('.visibleClass')) {
document.querySelector('.visibleClass').classList.remove('visibleClass');
}
document.querySelector("#ele-" + data).classList.add('visibleClass');
}
<style>
.press {
background: red;
float: left;
padding: 20px;
margin-left: 20px;
}
.visibleClass {
display: block !important;
}
</style>
<div id="x_1" class="press" onclick="showDiv('1')">1</div>
<div id="x_2" class="press" onclick="showDiv('2')">2</div>
<div id="x_3" class="press" onclick="showDiv('3')">3</div>
<div id="x_4" class="press" onclick="showDiv('4')">4</div>
<div id="x_5" class="press" onclick="showDiv('5')">5</div>
<div id="x_6" class="press" onclick="showDiv('6')">6</div>
<br>
<br>
<br>
<br>
<div id="ele-1" style="display: none;">show data 1</div>
<div id="ele-2" style="display: none;">show data 2</div>
<div id="ele-3" style="display: none;">show data 3</div>
<div id="ele-4" style="display: none;">show data 4</div>
<div id="ele-5" style="display: none;">show data 5</div>
<div id="ele-6" style="display: none;">show data 6</div>
我从其他人那里找到了一个代码片段,解释了如何在隐藏另一个元素的同时打开一个元素,尽管它是用 jquery 制作的。我的考试需要纯 Javascript 中的相同代码。现在我已经转换了它,有没有人知道我的问题是什么?我收到控制台警告
"(index):933 Uncaught TypeError:
document.querySelector(...).hideElement is not a function
at hideElement ((index):933)
at showDiv ((index):927)
at HTMLDivElement.onclick ((index):908)"
任何人都可以帮我创建一个新的 Javascript 函数来打开隐藏部分并隐藏其他部分,或者帮我修复我的代码吗?
这里是原jQuery代码:
function showDiv(data) {
$("#ele-" + data).addClass('visibleClass');
hideElement(6, data);
}
function hideElement(total, active) {
for (i = 1; i <= total; i++) {
if (i != active)
$("#ele-" + i).removeClass('visibleClass');
}
}
.press {
background: red;
float: left;
padding: 20px;
margin-left: 20px;
}
.visibleClass {
display: block !important;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div id="x_1" class="press" onclick="showDiv('1')">1</div>
<div id="x_2" class="press" onclick="showDiv('2')">2</div>
<div id="x_3" class="press" onclick="showDiv('3')">3</div>
<div id="x_4" class="press" onclick="showDiv('4')">4</div>
<div id="x_5" class="press" onclick="showDiv('5')">5</div>
<div id="x_6" class="press" onclick="showDiv('6')">6</div>
<br><br><br><br>
<div id="ele-1" style="display: none;">show data 1</div>
<div id="ele-2" style="display: none;">show data 2</div>
<div id="ele-3" style="display: none;">show data 3</div>
<div id="ele-4" style="display: none;">show data 4</div>
<div id="ele-5" style="display: none;">show data 5</div>
<div id="ele-6" style="display: none;">show data 6</div>
这是我将其转换为 javascript:
的方法function showDiv(data) {
document.querySelector("#ele-" + data).classList.add('visibleClass');
hideElement(6, data);
}
function hideElement(total, active) {
for (i = 1; i <= total; i++) {
if (i != active)
document.querySelector("#ele-" + i).removeClass('visibleClass');
}
}
.press {
background: red;
float: left;
padding: 20px;
margin-left: 20px;
}
.visibleClass {
display: block !important;
}
<div id="x_1" class="press" onclick="showDiv('1')">1</div>
<div id="x_2" class="press" onclick="showDiv('2')">2</div>
<div id="x_3" class="press" onclick="showDiv('3')">3</div>
<div id="x_4" class="press" onclick="showDiv('4')">4</div>
<div id="x_5" class="press" onclick="showDiv('5')">5</div>
<div id="x_6" class="press" onclick="showDiv('6')">6</div>
<br><br><br><br>
<div id="ele-1" style="display: none;">show data 1</div>
<div id="ele-2" style="display: none;">show data 2</div>
<div id="ele-3" style="display: none;">show data 3</div>
<div id="ele-4" style="display: none;">show data 4</div>
<div id="ele-5" style="display: none;">show data 5</div>
<div id="ele-6" style="display: none;">show data 6</div>
检查可见的 class 是否存在 document.querySelector('.visibleClass')
并将其删除。
然后将 visibleClass
设置为单击的元素。
function showDiv(data) {
if (document.querySelector('.visibleClass')) {
document.querySelector('.visibleClass').classList.remove('visibleClass');
}
document.querySelector("#ele-" + data).classList.add('visibleClass');
}
<style>
.press {
background: red;
float: left;
padding: 20px;
margin-left: 20px;
}
.visibleClass {
display: block !important;
}
</style>
<div id="x_1" class="press" onclick="showDiv('1')">1</div>
<div id="x_2" class="press" onclick="showDiv('2')">2</div>
<div id="x_3" class="press" onclick="showDiv('3')">3</div>
<div id="x_4" class="press" onclick="showDiv('4')">4</div>
<div id="x_5" class="press" onclick="showDiv('5')">5</div>
<div id="x_6" class="press" onclick="showDiv('6')">6</div>
<br>
<br>
<br>
<br>
<div id="ele-1" style="display: none;">show data 1</div>
<div id="ele-2" style="display: none;">show data 2</div>
<div id="ele-3" style="display: none;">show data 3</div>
<div id="ele-4" style="display: none;">show data 4</div>
<div id="ele-5" style="display: none;">show data 5</div>
<div id="ele-6" style="display: none;">show data 6</div>