我有一个 javascript 可以同时隐藏/取消隐藏我的 html 中的 2 个元素。当它只有一个时它工作得很好,但现在由于某种原因,当我单击两次时,某些元素只会消失,我不知道错误在哪里,这是代码以防有人发现错误谢谢。该函数取消隐藏给定 div id 的两个元素(xdivID 和 divID)并保持父级和祖父级可见(idParent idUncle)
function doubleunhide(xdivID, divID, idParent, idUncle) {
var xitem = document.getElementById(xdivID);
if(xitem){
xitem.className='unhidden';
}
var item = document.getElementById(divID);
if(item) {
item.className='unhidden';
}
var elements = getElementsByClassName(document, "unhidden");
var n = elements.length;
for (var i = 0; i < n; i++) {
var e = elements[i];
if ((e.id != divID) && (e.id != xdivID) && (e.id != idParent) && (e.id != idUncle)){
e.className='hidden';
}
}}
以下是它在 html 中的实现方式:
<div id="prj" class="hidden" style="margin-left:1em">
<a href="javascript:doubleunhide('prj011', 'prj01numbers', 'prj', 'nil');" style="text-decoration:none; color: rgb(0,0,0)" id="prj01link">Project 01</a> <br>
<a href="javascript:doubleunhide('prj021', 'prj02numbers', 'prj', 'nil');" style="text-decoration:none; color: rgb(0,0,0)" id="prj02link">Project 02</a> <br>
<a href="javascript:doubleunhide('prj031', 'prj03numbers', 'prj', 'nil');" style="text-decoration:none; color: rgb(0,0,0)" id="prj03link">Project 03</a> <br>
Project 04<br>
Project 05<br>
</div>