会变的原因在于hide(); hide是通过style.display="none"来显示的,要位置不变用style.visibility来控制
看你代码貌似jquery,
你可以这样
if(..)//显示a的条件
{
$("#a").css("visibility","visible");
$("#b").css("visibility","hidden");
}else
{
$("#a").css("visibility","hidden");
$("#b").css("visibility","visible");}
看你代码貌似jquery,
你可以这样
if(..)//显示a的条件
{
$("#a").css("visibility","visible");
$("#b").css("visibility","hidden");
}else
{
$("#a").css("visibility","hidden");
$("#b").css("visibility","visible");}
<html>
<head>
<script language="javascript" src="jquery-1.2.6.js"></script>
<script language="javascript">
function ctrSel(selId)
{
var id=selId=="a"?"b":"a";
$("#"+selId).show();
$("#"+id).hide();
}
</script>
</head>
<body><select id="a">
<option>aa </option>
<option>aaaa </option>
</select>
<select id="b" style="display:none">
<option>bb </option>
<option>bbbb </option>
</select>
<br />
<input type="button" value="display a only" onclick="ctrSel('a')" />
<input type="button" value="display b only" onclick="ctrSel('b')" />
</body>
</html>