[英]JQuery Hide Div when Option is Selected
选择特定的OPTION值时,我想隐藏DIV的类
<select id="tagtype" name="type">
<option value="type_s">Standard</option>
<option value="type_o">Overstock</option>
<option value="type_snd">Scratch & Dent</option>
<option value="type_mult">Multiples</option>
</select>
<div class="multiples>stuff here</div>
<script type="text/javascript">
$(document).ready(function() {
if ($("#tagtype option[value='type_mult']").length)
$("multiples").css('display','none');
});
</script>
更好的方法可能是如下所示:
jQuery(document).ready(function() {
jQuery("#tagtype").change(function() {
if(jQuery(this).find("option:selected").val() == "type_mult") {
jQuery(".multiples").hide();
}
});
});
您正在将处理程序绑定到选择框的onChange
事件。 只要在选择框中选择一个新选项,就会调用该处理程序。
在处理程序中, this
是指触发onChange
事件的选择框。 您寻找所选选项的值。 如果此值等于“ type_mult”,则将隐藏所有具有class multiples
元素。
现有代码的问题在于,它只会运行一次; 页面首次完成加载时。 您需要在选择框中响应更改,这就是为什么需要绑定到onChange
事件的原因。 另一个问题是if
语句。 即使您使用了代码并在onChange
处理程序中,它if
每种类型中输入if
块,因为您没有检查是否选择了带有“ type_mult”值的选项。 您只是在检查它是否存在。 由于它始终存在,因此if
的代码将始终运行。 另外,当您要使用类名时,需要在类名前加一个句点。 因此,您要执行$(.multiples)
而不只是$(multiples)
(后者将搜索名为multiples
的标记,这不是您想要的)。
需要更多信息-运行此代码时实际发生了什么?
我的猜测是第二个jQuery选择器是错误的:
$(".multiples").css('display','none');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.