【发布时间】:2012-04-21 03:38:32
【问题描述】:
我有一个选择框,希望在您单击选项时在隐藏的 div 中显示帮助文本:
<select onchange="optionCheck()" multiple="multiple" name="test" id="options" size="15" class="form-select">
<option value="1">option 1</option>
<option value="2">option 2</option>
</select>
<div id="help1" style=visibility:hidden>help text 1</div>
<div id="help2" style=visibility:hidden>help text 2</div>
<script type="text/javascript">
function optionCheck(){
var option = document.getElementById("options").value;
if(option == "1"){
document.getElementById("help1").style.visibility ="visible";
document.getElementById("help2").style.visibility ="hidden";
}
if(option == "2"){
document.getElementById("help2").style.visibility ="visible";
document.getElementById("help1").style.visibility ="hidden";
}
}
</script>
如何创建一个简单的循环,这样我就不必为每个选项编写“if”语句?
document.getElementById(option).style.visibility ="visible";
不工作 - javascript 和我相处得不好 ;-)
Also, is there a simple way to hide all other divs when an option is selected?
【问题讨论】:
-
首先,在 html 中定义事件并不是一个好习惯。这些天来,有很好的替代品可用(都在你的 javascript 中定义它们),这依赖于一个字符串得到
evaled,但这并不好。 -
第二,你应该在
visibility:hidden周围加上引号。此时它可能不会破坏您的代码,但这不是这样做的理由。您也不应该使用样式属性,但我们会假装没有看到。 -
你的所有选项都会被编号吗,div 是否会被赋予“help_”的 id,其中下划线是对应的数字?
-
是的,它们都是这样编号的
标签: javascript html