【问题标题】:On page load Add Class to div if the class of the selected option in a dropdown equals a value如果下拉列表中所选选项的类等于一个值,则在页面加载时将类添加到 div
【发布时间】:2020-09-25 00:09:44
【问题描述】:

我有一个使用下拉菜单在特定类别中搜索的搜索表单。如果所选选项包含特定类,我需要在搜索结果页面上的 div 中添加一个类。

这是我在搜索表单中的选择选项:

<select  name='product_cat' id='product_cat' class='cat-dropdown hidden-xs' >
<option value='0'>Search All</option>
<option class="level-0" value="antibodies">Antibodies</option>
<option class="level-0" value="chemicals" selected="selected">Chemicals</option>
<option class="level-0" value="elisa-kits">Elisa Kits</option>
<option class="level-0" value="chromatography">Chromatography</option>

如果所选选项的类等于“level-0”,我想在页面下方添加一个类。我希望这不是在选择过程中发生,而是在加载时在搜索结果页面上发生。

这是我目前所拥有的,但我无法让它工作:

$('#product_cat option').load(function(){
  if($(this).val() == 'level-0'){ 

$("#sidebar-fwp-type").addClass("hideme");  // Add class to our facet

  }
});

有什么建议吗?

【问题讨论】:

    标签: jquery select options


    【解决方案1】:

    您想检查所选选项是否具有特定类,但您检查的是值:if($(this).val() == 'level-0')。请注意,从 jQuery 3.0 开始,load() 事件是 deprecated,应该写成 .on( "load", handler ) 而不是 .load( handler )。此外,它并不像您预期​​的那样工作:

    当一个元素和所有子元素都有 已完全加载。此事件可以发送到任何元素 与 URL 相关联:图像、脚本、框架、iframe 和 窗口对象。

    因此,如果您想等到所有图像或其他外部资源都加载完毕,您可以使用$(window).on('load', function (){})。我将改用$(document).ready();

    $(document).ready(function() {
      if ($("#product_cat option:selected").attr("class") == "level-0") {
        $("#sidebar-fwp-type").addClass("hideme");
      }
    });
    .hideme {
      display:none;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <select  name='product_cat' id='product_cat' class='cat-dropdown hidden-xs' >
    <option value='0'>Search All</option>
    <option class="level-0" value="antibodies">Antibodies</option>
    <option class="level-0" value="chemicals" selected="selected">Chemicals</option>
    <option class="level-0" value="elisa-kits">Elisa Kits</option>
    <option class="level-0" value="chromatography">Chromatography</option>
    </select>
    <div id="sidebar-fwp-type">
    sidebar
    </div>

    【讨论】:

    • @moorewebx 很高兴我能提供帮助 :) 如果这回答了您的问题,请检查答案旁边的复选标记,以便您的问题作为已回答/已解决。
    猜你喜欢
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 2022-12-29
    • 2011-09-20
    • 2014-08-15
    • 1970-01-01
    相关资源
    最近更新 更多