繁体   English   中英

选择选项时,jQuery隐藏Div

[英]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 &amp; 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM