javascript如何实现多个下拉框或隐藏层的显示隐藏

比如网页中有10个下拉框 点击一个出下拉框 点击另一个出下拉框同时前一个自动隐藏 如何实现?
这个问题的重点是10个里只会显示出一个 点击一个会隐藏其他的

下面的答案有些对我很有帮助 可惜我是新手 暂时就 “指罗男”的答案能看懂理解 其他的我还不能完全理解运用 我会继续学习下去的 我期待能有更多的好方法出来 让我学习

1.全部下拉框的display:none;
2.给每个下拉框对应的按钮加nomouseclick事件
3.事件中,先选择出display:block的下拉框,设置其display:none;然后再把当前下拉框设置为display:block;
这个用JQUERY做起来比较简单
1.把全部下拉框设置为display:none;
2.加一个类 .current { display:block !important;}
3.JQUERY代码如下
$(document).ready(function(){
$("#下拉框的ID").click(function(){
$(".current").removeClass("current");
$(this).addClass("current");
});
});
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-06
给你一个简单的例子吧!
当你点击显示那个隐藏层的时候,就调用reload()这个函数,

<script type="text/javascript">
<!--
function createxmlhttp()
{
//create xmlhttp object
xmlhttpobj = false;
try{
xmlhttpobj = new XMLHttpRequest;
}catch(e){
try{
xmlhttpobj=new ActiveXObject("MSXML2.XMLHTTP");
}catch(e2){
try{
xmlhttpobj=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e3){
xmlhttpobj = false;
}
}
}
return xmlhttpobj;

}

function reload(){
var xmlobj;
xmlobj=createxmlhttp();
xmlobj.open("get","search.asp?typeid=1",true);//这里要为那个层的内容做一个ASP页面.,如果有值传递,也可以加在后面.
xmlobj.onreadystatechange=function(){
if (xmlobj.readyState==4){
if (xmlobj.status==200){

document.getElementById("info").innerHTML=xmlobj.responseText;//加载内容.这里的info是我随便取的一个ID,你可以换成你的那个显示内容的层的ID.

}
}
};
xmlobj.send(null);
}

-->
</script>
第2个回答  2011-09-06
设一个全局变量,比如var selectedObj = null;
在点击事件触发时,
1. 当selectedObj ==null,将触发的下拉框赋给这个全局变量selectedObj ,弹出下拉框。
2. 当selectedObj !=null,隐藏它,并将触发的下拉框赋给这个全局变量selectedObj ,弹出下拉框。追问

能再具体点吗 我新手 你这样说 我还没明白具体该怎么写

追答

实现方法我已经很具体了。
把你代码贴上,我给你改一下,

<!--
var selectedObj =null;
function createxmlhttp()
{
if(selectedObj ==null){
selectedObj = document.getElementById("info");//换成你的那个显示内容的层的ID.
selectedObj.innerHTML = xmlobj.responseText;
}else{
selectedObj .style.display = "none";//隐藏前一个
selectedObj = document.getElementById("info");//换成你的那个显示内容的层的ID.
selectedObj.innerHTML = xmlobj.responseText;
}

追问

整个网页很大 不好贴 我用你楼下的方法实现了
你那个方法我以后会试试的 以后有不懂的还来问你哦 谢谢啦

追答

这么点小功能,根本没必要用什么JQUERY

第3个回答  2011-09-06
将10个下拉框分别放进10个div中,把下拉框所在div之外的其他div的style.display="none"
第4个回答  2011-09-06
最直接if判断显示和隐藏,也可以for循环遍历追问

求具体方法 你这样说我还是一头雾水。。。。

相似回答