【问题标题】:How to hide an option in a dropdown using jquery?如何使用 jquery 在下拉列表中隐藏选项?
【发布时间】:2021-05-06 05:04:29
【问题描述】:

我们正在通过列表填充下拉列表中的选项。这些值被添加到 Action 类的列表中。 当 option 等于某个特定值时,我们想隐藏它。

以下是代码:

if (stuval.substring(0, 7) == "<option") {  
   $('#stuclass option:not(:first)').remove(); 
   $('#stuclass').find('option').end().append($(stuval));
   $("#stuclass option[value='not apply']").css("display", "none"); // Not working
}                         

当值为“不适用”时如何隐藏选项?尝试使用上述代码并使用索引。但它不起作用。请帮助。

【问题讨论】:

    标签: jquery dropdown options


    【解决方案1】:

    可能是空格,值中的小写/大写阻止它被选择..一些方法

    1- 使用* 表示包含[value*='not apply'] 这种方式你需要注意小写和大写并使用确切的值.. 如果它的Not Apply 你必须使用[value*='Not Apply']

    #stuclass option[value*="not apply"]{
      display : none;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <select id="stuclass">
      <option value="apply">Apply</option>
      <option value= "not apply">Not Apply</option>
    </select>

    2- 使用.filter()toLowerCase().trim() .. 我认为这种方式比第一种更有效

    $('#stuclass option').filter(function(){
      return $(this).val().toLowerCase().trim() == 'not apply'
    }).hide(0);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <select id="stuclass">
      <option value="apply">Apply</option>
      <option value= "not apply">Not Apply</option>
    </select>

    旁注:

    • .end()这里$('#stuclass').find('option').end().append($(stuval));会返回$('#stuclass')所以你可以直接使用$('#stuclass').append($(stuval))

    • 另外if (stuval.substring(0, 7) == "&lt;option") 最好是if (stuval.trim().substring(0, 7) == "&lt;option") 以避免任何左/右空格,或者您可以使用if(stuval.indexOf('&lt;option') &gt; -1)

    对于选择2

    $(document).ready(function(){
      $('select').select2();
    });
    .select2-results [data-select2-id*="not apply"]{
      display : none;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/css/select2.min.css" integrity="sha512-nMNlpuaDPrqlEls3IX/Q56H36qvBASwb3ipuo3MxeWbsQB1881ox0cRv7UPTgBlriqoynt35KjEwgGUeUXIPnw==" crossorigin="anonymous" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js" integrity="sha512-2ImtlRlf2VVmiGZsjm9bEyhjGW4dU7B6TNwh/hx/iSByxNENtj3WVE6o/9Lj4TJeVXPi4bnOIMXFIJJAeufa0A==" crossorigin="anonymous"></script>
    <select id="stuclass">
      <option value="apply">Apply</option>
      <option value= "not apply">Not Apply</option>
    </select>

    要隐藏某些 select2 的选项,它不能通过使用 css 来完成,您可以使用 javascript 在将 select2 附加到您想要的选择之前删除 not apply 选项

    $(document).ready(function(){
      $('#stuclass , #stuclass3').find('[value*="not apply"]').remove();
      $('select').select2();
    });
    .select2{
      min-width : 200px;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/css/select2.min.css" integrity="sha512-nMNlpuaDPrqlEls3IX/Q56H36qvBASwb3ipuo3MxeWbsQB1881ox0cRv7UPTgBlriqoynt35KjEwgGUeUXIPnw==" crossorigin="anonymous" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js" integrity="sha512-2ImtlRlf2VVmiGZsjm9bEyhjGW4dU7B6TNwh/hx/iSByxNENtj3WVE6o/9Lj4TJeVXPi4bnOIMXFIJJAeufa0A==" crossorigin="anonymous"></script>
    <select id="stuclass">
      <option value="apply">Apply</option>
      <option value= "not apply">Not Apply</option>
    </select>
    
    <select id="stuclass2">
      <option value="apply">Apply 2</option>
      <option value= "not apply">Not Apply 2</option>
    </select>
    
    <select id="stuclass3">
      <option value="apply">Apply 3</option>
      <option value= "not apply">Not Apply 3</option>
    </select>
    
    <select id="stuclass4">
      <option value="apply">Apply 4</option>
      <option value= "not apply">Not Apply 4</option>
    </select>

    【讨论】:

    • 我们使用 Jquery 1.10.4。不幸的是,这不起作用。完全使用了您提到的语法。不知道错在哪里。你能帮忙吗?
    • @Padmaja 在您询问选项值的问题中,选项值和选项文本之间存在很大差异。如果您询问文本,请使用return $(this).text().toLowerCase().trim() == 'not apply';
    • 问题是我们在下拉列表中使用了 select2 插件..那是它不工作....使用正常选择它工作正常....如何使用 select2 插件隐藏选项下拉?请帮助...
    • @Padmaja 答案已更新 .. 检查这种方式是否适合您
    • 嗨...还有一个要求...希望为具有该特定 ID 的下拉菜单隐藏此“不适用”选项。因为我们在其他下拉菜单中有该特定选项页面...请告诉我该怎么做?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 2021-05-12
    • 2014-02-27
    • 2015-10-29
    • 2023-03-05
    • 1970-01-01
    相关资源
    最近更新 更多