【问题标题】:How to hide (NOT remove) option in select2?如何隐藏(不删除)select2 中的选项?
【发布时间】:2016-01-02 02:04:54
【问题描述】:

是否可以在不删除的情况下隐藏 select2 中的选项?

我当前的代码只禁用了该选项:

$('#company_id').change(function () {
    var company_name =  $("#company_id option:selected").text();
    var $owner_id = $("#owner_id");

    $owner_id.select2("destroy"); 

    $("#owner_id option:not(:contains('(" + company_name + ")'))")  
        .prop('disabled',true);

    $("#owner_id option:contains('(" + company_name + ")')")
        .prop('disabled',false);

    $owner_id.select2();
});

【问题讨论】:

标签: jquery jquery-select2 jquery-select2-4


【解决方案1】:

您可以使用 jQuery 注释 HTML 代码,您的代码将如下所示:

$('#company_id').change(function () {
    var company_name =  $("#company_id option:selected").text();
    var $owner_id = $("#owner_id");

    $owner_id.select2("destroy"); 

    //Comment element
    element = $("#owner_id option:not(:contains('(" + company_name + ")'))");
    comment = document.createComment(element.get(0).outerHTML);
    element.replaceWith(comment);

    //Unomment element
    $("#owner_id option:contains('(" + company_name + ")')").replaceWith(comment.nodeValue);

    $owner_id.select2();
});

如果不起作用,请尝试在循环中为每个元素进行注释或取消注释,我稍后会尝试。

【讨论】:

    【解决方案2】:

    使用 css 代替 prop

    .css('display', 'none');
    

    .css('display', 'block');
    

    【讨论】:

      猜你喜欢
      • 2019-02-10
      • 2017-06-02
      • 1970-01-01
      • 1970-01-01
      • 2020-03-09
      • 2013-07-13
      • 2014-09-23
      • 1970-01-01
      • 2019-12-18
      相关资源
      最近更新 更多