JQuery 在选择选项时隐藏 Div

标签 jquery class html-select hide

我想在选择特定选项值时隐藏 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();
      }
   });
});

您正在将处理程序绑定(bind)到选择框的 onChange 事件。每当您在选择框中选择一个新选项时,都会调用处理程序。

在处理程序中,this 指的是触发 onChange 事件的选择框。您寻找所选选项的值。如果该值等于“type_mult”,则隐藏具有 multiples 类的所有元素。

现有代码的问题是它只会运行一次;当页面第一次完成加载时。您需要响应选择框中的更改,这就是您需要绑定(bind)到 onChange 事件的原因。另一个问题是 if 语句。即使您使用代码并在 onChange 处理程序中,它也会在每种类型中输入 if block ,因为您没有检查具有“type_mult”值的选项是否为已选择。您只需检查它是否存在。由于它始终存在,因此if内的代码将始终运行。另外,当你想使用类名时,你需要在类名前面加一个句点。因此,您想要执行 $(.multiples) 而不仅仅是 $(multiples) (后者将搜索名为 multiples 的标签,该标签不是你想要的)。

关于JQuery 在选择选项时隐藏 Div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5328456/

相关文章:

java - 自定义 Java 类加载器和内部类

swift - 如何在自定义类中使用 Firebase?

javascript - 为选项选择设置多个值并使用 jQuery 获取它们

php - 从 mysql 查询中选择选项

ionic2 - 带有复选框和搜索的 ionic (2 或 3)多选微调器

javascript - "Tag is missing a name"带 Razor

objective-c - Xcode 类不能 "see"彼此

jquery - 3 秒内没有鼠标移动时发生的事件

javascript - 仪表图 Highchart 表盘样式问题

javascript - jquery 或 javascript 中的图表