新增功能堆棧溢出和JavaScript作爲一個整體。JavaScript代碼不能正常工作,無法隱藏/顯示div內容
我一直在試圖做一個簡單的函數,改變點擊從「無」到「塊」幾個div元素的內聯顯示屬性。在這裏嘗試了類似問題的不同代碼,但沒有任何運氣。這是代碼。很抱歉,如果我沒有格式化正確:(
代碼:
function toggleMenuItem(subGroupId) {
subGroupIdStyle = document.getElementById('subGroupId').style;
var see = subGroupIdStyle.display;
if (see == 'none') {
see = 'block';
} else {
see = 'none';
}
};
<div id="content">
<p id="title">Computer <br>components</p>
<p id="item1" class="menuitem" onclick="toggleMenuItem('subgroup1');">CPUs</p>
<div id="subgroup1" style="display:none;">
+ <a href="#" class="submenu">Intel</a> <br> + <a href="#" class="submenu">AMD</a> <br> + <a href="#" class="submenu">ARM</a> <br> + <a href="#" class="submenu">nVidia</a>
</div>
<p id="item2" class="menuitem" onclick="toggleMenuItem('subgroup2');">Motherboards</p>
<div id="subgroup2" style="display:none;">
+ <a href="#" class="submenu">Asus</a> <br> + <a href="#" class="submenu">Asrock</a> <br> + <a href="#" class="submenu">Foxconn</a> <br> + <a href="#" class="submenu">Gigabyte</a>
</div>
<p id="item3" class="menuitem" onclick="toggleMenuItem('subgroup3');">Memory</p>
<div id="subgroup3" style="display:none;">
+ <a href="#" class="submenu">Samsung</a> <br> + <a href="#" class="submenu">A-Data</a> <br> + <a href="#" class="submenu">Corsair</a> <br> + <a href="#" class="submenu">Kingston</a>
</div>
<p id="item4" class="menuitem" onclick="toggleMenuItem('subgroup4');">Hard Drives</p>
<div id="subgroup4" style="display:none;">
+ <a href="#" class="submenu">Western Digital</a> <br> + <a href="#" class="submenu">Seagate</a> <br> + <a href="#" class="submenu">Toshiba</a> <br> + <a href="#" class="submenu">Hitachi</a>
</div>
</div>
你只是改變變量'see'的價值。您需要更新DOM中元素的'style'。使用'document.getElementById('subGroupId')。style.display = see ==='none'? 'block':'none';'。 – Tushar
我建議你創建一個類'.hide {display:none; }'在CSS中,並使用'.classList.toggle('hide');' – Tushar
切換它的問題是你只是複製一個屬性的值。所以當你更新這個變量時,它不會影響Object中的屬性。 @ Tushar的評論是合適的方式,但如果您不熟悉三元運算符,請嘗試在'if'和'else'中使用'subGroupIdStyle.display'而不是'see'。 – Rajesh