【发布时间】:2016-04-29 14:47:45
【问题描述】:
在我的表单中,我需要显示/隐藏多个 div,具体取决于选择了 SELECT 中的哪个 OPTION。
我可以运行,但我的问题是,一个 div 可以被许多 OPTIONS 隐藏/显示。因此,使用我的代码,这些 div 会显示/隐藏一段时间,然后再次隐藏/显示。
这是我的 HTML:
<select id="vFormat" name="vFormat" onchange="getval(this);">
<option value="0">Choose</option>
<option value="1" class="format1">Option 1</option>
<option value="2" class="format2">Option 2</option>
<option value="3" class="format3">Option 2</option>
<option value="4" class="format4">Option 2</option>
<option value="5" class="format5">Option 2</option>
</select>
<div class="showdivformat1 showdivformat2 hiddenelement">
Text of hidden Div
</div>
<div class="hidedivformat2 showdivformat5 visibleelement">
Text of visible Div
</div>
这是我的 jQuery
function getval(sel) {
var divval = $('.selectInput option:selected').attr('class').split(' ');
for(var i=0; i<divval.length; i++){
$(".hiddenelement").hide("50");
$(".showdiv" + divval[i]).show("50");
}
for(var i=0; i<divval.length; i++){
$(".visibleelement").show("50");
$(".hidediv" + divval[i]).hide("50");
}
}
我知道问题是,我总是隐藏 .hiddenelement 并在更改选项时显示 .visibleelement。
但我没有解决方案来检查 div 是否已经隐藏或可见,并且在选项更改后应该保持这种状态。
【问题讨论】:
-
问题出在哪里还不是很清楚。对于任何给定的选定选项,您能否确定应该显示哪些元素?为什么不能显示这些元素?
-
这里是纯 JavaScript 解决方案(不需要 jquery):stackoverflow.com/questions/9456289/…
-
还有很多关于堆栈溢出的其他问题,标题与您输入的内容相似。我建议您更改标题并更好地表达问题。
标签: javascript jquery html css select