我现在在一个Question / Anwser脚本上有大约40个问题,我想隐藏所有其他消息,然后单击具有ID的消息,但窗口重叠,那么我该如何隐藏所有其他ID并仅用Javascript显示一个?

最佳答案

以下示例将根据您的HTML结构而有所不同。它们仅作为示例,而不是针对您特定情况的解决方案。


更改单个元素的样式可以很快完成:

document.getElementById("foo").style.display = "none";


您可以像这样隐藏所有其他内容:

var myDivs = document.getElementsByTagName("DIV");
for (var i = 0; i < myDivs.length; i++) {
  if (myDivs[i].id != "foo") {
    myDivs[i].style.display = "none";
  } else {
    myDivs[i].style.display = "block";
  }
}


如果您愿意使用jQuery之类的框架,则可以更快地执行相同的操作:

$(".question .title").click(function(){
 $(this)
   .next().slideDown()
   .closest(".question").siblings()
   .find(".body").slideUp();
});​


jQuery在线演示:http://jsbin.com/opisa/edit

09-16 19:21