Eureka !!
Ok, для тех, кто следит вдоль дома или для тех, кто наткнуться на это в будущем ищет решение (и я подчеркиваю «решение», потому что нет никаких сомнений в другой способ или два для достижения этой цели), вот проблема и решение. Я сделаю все возможное, чтобы быть коротким и понятным.
В моем первоначальном коде я старался, чтобы функция была простой, делая все в одной функции. При этом я наткнулся на проблему с циклом for функции, цепляющейся за класс с наименьшим количеством элементов массива.
В моем случае это я использовал 9 основных кнопок, у которых было несколько кнопок «под» под каждой «основной» кнопкой. Каждый суб-кнопочный коллектив под основной кнопкой имел свой уникальный CSS-класс, который я пытался настроить стиль отображения (от ни одного к блоку или наоборот). (кнопки fyi могут легко быть div или другим элементом).
Так что, если бы у меня было несколько основных секций кнопок с 6 суб-кнопками, другое с тремя дополнительными кнопками, одно с 5 суб-кнопками, а другое с 4-ю кнопками .... цикл for остановился бы на 3 циклах, таким образом, никогда не будет отображаться никаких кнопок, превышающих 3. Даже если вы сказали, что цикл будет работать до 1000, он никогда не пройдет 3.
Я точно не знаю, почему это так, я просто понял, что цикл for остановился на наименьшее количество предметов класса. BTW, если бы у меня было такое же количество суб-кнопок во всех разделах, тогда это бежало без проблем.
Таким образом, решение заключается в создании функции со своим собственным циклом для каждого класса суб-кнопок. И еще один для открытия текущей кнопки кнопки. Затем, чтобы упростить вызов функций, я создал одну функцию, которая вызвала все остальные. Не так упрощенно, как я изначально хотел или думал, но все же проще, чем называть все идентификационные номера элементов и делать это именно так.
Что еще более важно, это работает.
Вот пересмотренная Javascript код:
function closeALL (Sub_Class_Name) {
close0();
close1();
close2();
close3();
close4();
close5();
close6();
close7();
close8();
SubMenu(Sub_Class_Name);
}
function close0() {
var A = document.getElementsByClassName('tips_button0');
var length = A.length;
var X
for (X=0; X < length; X++) {
A[X].style.display = 'none';
}
}
function close1() {
var B = document.getElementsByClassName('tips_button1');
var length = B.length;
var X
for (X=0; X < length; X++) {
B[X].style.display = 'none';
}
}
function close2() {
var C = document.getElementsByClassName('tips_button2');
var length = C.length;
var X
for (X=0; X < length; X++) {
C[X].style.display = 'none';
}
}
function close3() {
var D = document.getElementsByClassName('tips_button3');
var length = D.length;
var X
for (X=0; X < length; X++) {
D[X].style.display = 'none';
}
}
function close4() {
var E = document.getElementsByClassName('tips_button4');
var length = E.length;
var X
for (X=0; X < length; X++) {
E[X].style.display = 'none';
}
}
function close5() {
var F = document.getElementsByClassName('tips_button5');
var length = F.length;
var X
for (X=0; X < length; X++) {
F[X].style.display = 'none';
}
}
function close6() {
var G = document.getElementsByClassName('tips_button6');
var length = G.length;
var X
for (X=0; X < length; X++) {
G[X].style.display = 'none';
}
}
function close7() {
var H = document.getElementsByClassName('tips_button7');
var length = H.length;
var X
for (X=0; X < length; X++) {
H[X].style.display = 'none';
}
}
function close8() {
var I = document.getElementsByClassName('tips_button8');
var length = I.length;
var X
for (X=0; X < length; X++) {
I[X].style.display = 'none';
}
}
function SubMenu(Sub_Class_Name) {
var Z = document.getElementsByClassName(Sub_Class_Name);
var X ;
for (X=0; X < Z.length; X++) {
Z[X].style.display = "block"
}
}
Вот пересмотренный HTML код:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<style type='text/css'>
.tips_buttonholder {
padding: 20px;
float: left;
height: 500px;
width: 135px;
margin-right: 20px;
background-color: #FFF;
border-radius: 15px;
}
.tips_buttons {
float: left;
width: 135px;
margin-bottom: 10px;
}
.tips_button0 {
float: left;
width: 115px;
margin-bottom: 10px;
margin-left: 20px;
display: none;
}
.tips_button1 {
float: left;
width: 115px;
margin-bottom: 10px;
margin-left: 20px;
display: none;
}
.tips_button2 {
float: left;
width: 115px;
margin-bottom: 10px;
margin-left: 20px;
display: none;
}
.tips_button3 {
float: left;
width: 115px;
margin-bottom: 10px;
margin-left: 20px;
display: none;
}
.tips_button4 {
float: left;
width: 115px;
margin-bottom: 10px;
margin-left: 20px;
display: none;
}
.tips_button5 {
float: left;
width: 115px;
margin-bottom: 10px;
margin-left: 20px;
display: none;
}
.tips_button6 {
float: left;
width: 115px;
margin-bottom: 10px;
margin-left: 20px;
display: none;
}
.tips_button7 {
float: left;
width: 115px;
margin-bottom: 10px;
margin-left: 20px;
display: none;
}
.tips_button8 {
float: left;
width: 115px;
margin-bottom: 10px;
margin-left: 20px;
display: none;
}
</style>
<script>
function closeALL (Sub_Class_Name) {
close0();
close1();
close2();
close3();
close4();
close5();
close6();
close7();
close8();
SubMenu(Sub_Class_Name);
}
function close0() {
var A = document.getElementsByClassName('tips_button0');
var length = A.length;
var X
for (X=0; X < length; X++) {
A[X].style.display = 'none';
}
}
function close1() {
var B = document.getElementsByClassName('tips_button1');
var length = B.length;
var X
for (X=0; X < length; X++) {
B[X].style.display = 'none';
}
}
function close2() {
var C = document.getElementsByClassName('tips_button2');
var length = C.length;
var X
for (X=0; X < length; X++) {
C[X].style.display = 'none';
}
}
function close3() {
var D = document.getElementsByClassName('tips_button3');
var length = D.length;
var X
for (X=0; X < length; X++) {
D[X].style.display = 'none';
}
}
function close4() {
var E = document.getElementsByClassName('tips_button4');
var length = E.length;
var X
for (X=0; X < length; X++) {
E[X].style.display = 'none';
}
}
function close5() {
var F = document.getElementsByClassName('tips_button5');
var length = F.length;
var X
for (X=0; X < length; X++) {
F[X].style.display = 'none';
}
}
function close6() {
var G = document.getElementsByClassName('tips_button6');
var length = G.length;
var X
for (X=0; X < length; X++) {
G[X].style.display = 'none';
}
}
function close7() {
var H = document.getElementsByClassName('tips_button7');
var length = H.length;
var X
for (X=0; X < length; X++) {
H[X].style.display = 'none';
}
}
function close8() {
var I = document.getElementsByClassName('tips_button8');
var length = I.length;
var X
for (X=0; X < length; X++) {
I[X].style.display = 'none';
}
}
function SubMenu(Sub_Class_Name) {
var Z = document.getElementsByClassName(Sub_Class_Name);
var X ;
for (X=0; X < Z.length; X++) {
Z[X].style.display = "block"
}
}
</script>
</head>
<body>
<div class="tips_buttonholder">
<!-- SECTION 4 START -->
<button id="main4" class="tips_buttons" type="button" onClick="closeALL('tips_button4'); ">HEALTH</button>
<button class="tips_button4" type="button" onClick="">SubButton</button>
<button class="tips_button4" type="button" onClick="">SubButton</button>
<button class="tips_button4" type="button" onClick="">SubButton</button>
<!-- SECTION 4 END -->
<!-- SECTION 5 START -->
<button id="main5" class="tips_buttons" type="button" onClick="closeALL('tips_button5'); ">FOOD</button>
<button class="tips_button5" type="button" onClick="">Discount Apps</button>
<button class="tips_button5" type="button" onClick="">Buffets</button>
<button class="tips_button5" type="button" onClick="">SubButton</button>
<!-- SECTION 5 END -->
<!-- SECTION 0 START -->
<button id="main0" class="tips_buttons" type="button" onClick="closeALL('tips_button0'); ">COMFORT</button>
<button class="tips_button0" type="button" onClick="">SubButton</button>
<button class="tips_button0" type="button" onClick="">SubButton</button>
<!-- SECTION 0 END -->
<!-- SECTION 1 START -->
<button id="main1" class="tips_buttons" type="button" onClick="closeALL('tips_button1'); ">MONEY</button>
<button class="tips_button1" type="button" onClick="">Airport Rides</button>
<button class="tips_button1" type="button" onClick="">Email Clubs</button>
<button class="tips_button1" type="button" onClick="">Haggle</button>
<!-- SECTION 1 END -->
<!-- SECTION 2 START -->
<button id="main2" class="tips_buttons" type="button" onClick="closeALL('tips_button2'); ">TOURNAMENT</button>
<button class="tips_button2" type="button" onClick="">SubButton</button>
<button class="tips_button2" type="button" onClick="">SubButton</button>
<!-- SECTION 2 END -->
<!-- SECTION 3 START -->
<button id="main3" class="tips_buttons" type="button" onClick="closeALL('tips_button3'); ">GAMBLING</button>
<button class="tips_button3" type="button" onClick="">SubButton</button>
<button class="tips_button3" type="button" onClick="">SubButton</button>
<button class="tips_button3" type="button" onClick="">SubButton</button>
<!-- SECTION 3 END -->
<!-- SECTION 6 START -->
<button id="main6" class="tips_buttons" type="button" onClick="closeALL('tips_button6'); ">SITE SEEING</button>
<button class="tips_button6" type="button" onClick="">Discount Apps</button>
<button class="tips_button6" type="button" onClick="">Power Pass</button>
<button class="tips_button6" type="button" onClick="">SubButton</button>
<!-- SECTION 6 END -->
<!-- SECTION 7 START -->
<button id="main7" class="tips_buttons" type="button" onClick="closeALL('tips_button7'); ">SHOPPING</button>
<button class="tips_button7" type="button" onClick="">Discount Apps</button>
<button class="tips_button7" type="button" onClick="">SubButton</button>
<button class="tips_button7" type="button" onClick="">SubButton</button>
<!-- SECTION 7 END -->
<!-- SECTION 8 START -->
<button id="main8" class="tips_buttons" type="button" onClick="closeALL('tips_button8'); ">ENTERTAINMENT</button>
<button class="tips_button8" type="button" onClick="">Discount Apps</button>
<button class="tips_button8" type="button" onClick="">Power Pass</button>
<button class="tips_button8" type="button" onClick="">SubButton</button>
<button class="tips_button8" type="button" onClick="">Discount Apps</button>
<button class="tips_button8" type="button" onClick="">Power Pass</button>
<button class="tips_button8" type="button" onClick="">SubButton</button>
<!-- SECTION 8 END -->
</div>
</body>
</html>
HTML, будет ли у вас на самом деле есть более чем одну кнопки 'tips_button0'? – epascarello
Вы проверили вкладку консоли в инструментах разработчика? Это ошибка? – adi
ugh, я думал, что я тоже сохранил html. Для экономии времени с этим трудно справиться. Я только что отредактировал исходное сообщение, чтобы включить ссылку на сайт тестирования. – Muquia