一次显示一个常见问题,隐藏其他的
JS - Show one FAQ at a time, hide others
常见问题
JS代码:
var $ = function (id) {
return document.getElementById(id);
};
var faqs = $("faqs");
var h2Elements = faqs.getElementsByTagName("h2");
var h2Node;
for (var i = 0; i < h2Elements.length; i++) {
h2Node = h2Elements[i];
}
$("first_link").focus();
$(document).ready(function () {
$("h2").click(function () {
if (h2.hasAttribute("class")) {
h2.removeAttribute("class");
} else {
h2.setAttribute("class", "minus");
}
if (h2.nextElementSibling.hasAttribute("class")) {
h2.nextElementSibling.removeAttribute("class");
} else {
h2.nextElementSibling.hide();
}
});
});
在点击一个问题时,应该显示答案。当我点击一个不同的问题,所有其他的答案应该撤回(隐藏)。我调整了几次,要么代码不会隐藏任何东西(所有的答案仍然打开),要么所有的答案都不会打开。
从$(document)开始。ready(function(){,我如何得到的问题打开一个在一次点击(关闭其他)?
任何输入将不胜感激!
创建一个函数来隐藏所有其他具有类名open
的div
,如:
function hideOthers() {
var othersDivEle = document.getElementsByClassName("open");
for(var d = 0; d < othersDivEle.length; d++) {
othersDivEle[d].removeAttribute("class");
}
}
并将代码更改为:
...
} else {
hideOthers();
h2.nextElementSibling.setAttribute("class", "open");
}
..
} else {
hideOthers();
h2.nextElementSibling.setAttribute("class", "open");
}
更新jsFiddle 相关文章:
- 使用jQuery选项卡来显示或隐藏其他内容
- 如何在 *ngFor 列表中显示单击的元素,使用 Angular 2 隐藏其他元素
- 单击下拉菜单隐藏其他下拉菜单
- 运行fancybox thumb时隐藏其他图像
- 使用AngularJS中的ngOptions隐藏其他列表中的选定选项
- 展开/折叠显示一行,而隐藏其他行
- 在jsson图像滑块之间切换(显示一个,隐藏其他)
- 隐藏其他列后如何修复 html 表格列宽度
- 单击图像,隐藏其他图像并使用JQUERY对图像滑动进行动画处理
- 未在选择标记下拉列表中选择以隐藏其他输入元素的嵌套控制器
- 隐藏其他手风琴项目
- 如何使用 JQuery 隐藏其他选项卡内容并仅显示选定的选项卡内容
- 创建一个按钮,单击时将隐藏其他元素
- 如何使用 id 显示元素并隐藏其他元素
- JS:隐藏其他脚本的变量
- 单击可隐藏其他内容
- 在导航元素上显示潜水点击并隐藏其他潜水
- 用jquery显示一个块,同时隐藏其他块.当点击部分中的每个块时,会出现第二个块、第三个块,然后是第四个块
- 只显示一个元素并隐藏其他元素而不切换
- 如果元素ID存在,则隐藏其他元素