代码之家  ›  专栏  ›  技术社区  ›  Houy Narun

如何获取class.select2从select元素ID中搜索select2?

  •  1
  • Houy Narun  · 技术社区  · 6 年前

    鉴于 id 对于我与之交互的单个select元素,我尝试遍历所有这些元素以获得类 .select2-search select2 在我的函数中使用它,但是没有运气。

    function hideSelect2Keyboard(ID) {
      var Select2Search = $('#' + ID).prev().find('.select2-drop').find('.select2-search');
    
      console.log(Select2Search);
    
      $(Select2Search + ' input, :focus,input').prop('focus', false).blur();
    }
    
    $("select").select2().on("select2-open select2-close", function() {
      var ID = $(this).attr('id');
      hideSelect2Keyboard(ID);
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <link href="https://stackpath.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/3.4.5/select2.css" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/3.4.5/select2.min.js"></script>
    
    
    <label for="Salutation">Salutation:</label>
    <select class="" name="" id="Salutation">
      <option value="Mrs">Mrs</option>
      <option value="Mr">Mr</option>
      <option value="Miss">Miss</option>
    </select>
    
    <label for="Gender">Gender:</label>
    <select class="" name="" id="Gender">
      <option value="Female">Female</option>
      <option value="Male">Male</option>
      <option value="Transgender">Transgender</option>
    </select>

    控制台中没有错误,但我无法获取类

    enter image description here

    select元素转换为select2后的html结构如下所示:

    enter image description here

    也就是说我有选择元素ID, #Salutation ,我想从这里上课 。选择2搜索

    。选择2搜索 从给定的select ID?谢谢。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Ahmed Farahat    6 年前

    Select2有一个名为

    <label for="Salutation">Salutation:</label>
    <select class="" name="" id="Salutation" data-selector='salutation'>
     <option value="Mrs">Mrs</option>
     <option value="Mr">Mr</option>
     <option value="Miss">Miss</option>
    </select>
    
    <label for="Gender">Gender:</label>
    <select class="" name="" id="Gender" data-selector='salutation'>
     <option value="Female">Female</option>
     <option value="Male">Male</option>
     <option value="Transgender">Transgender</option>
    </select>
    

    请注意,我为每个select添加了一个数据属性,然后在初始化代码中可以这样做

    $("select").each(function(){
      var selector = $(this).data('selector')
      $(this).select2({
        dropdownCssClass: selector
      }).on("select2-open select2-close", function() {
        hideSelect2Keyboard(selector);
      });
    });
    

    现在,每个渲染的选择都将有一个具有指定类的父级 现在您可以选择它,例如在其中查找

    var yourDiv = $('.salutation').find('.select2-search')