【问题标题】:select box option remove() works but hide() did not选择框选项 remove() 有效,但 hide() 无效
【发布时间】:2020-02-17 13:51:18
【问题描述】:

我想根据输入字段的值显示和隐藏选择框选项。奇怪的是,这只适用于$('thisOption')。删除 () 但不包含:

$('thisOption').hide() 
// or:
$('thisOption').css('visibility', 'hidden')

$('#Selectkk').Load('JSON / kk_select_box.php')
// callback after select box is ready
function() {
  var i, filter,
    $ input = $('# ort_kk'),
    $ options = $('# select_kk').find('option')
  $ Input.keyup(function() {
    filter = $ input.val()
    $ Options.each(function() {
      var option_text = $(this).text();
      var pos = option_text.search(filter);
      if (pos == -1) {
        $(This).remove();
      }
    })
  });
}
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='input-group'>
  <input name='ort_kk' id='ort_kk' value=''>
</div>
<div id='selectkk'> </div>

我不想删除这些选项。如果输入字段已更正,则所有过滤选项必须仍然存在。这么粗略:

if (pos == -1) {
  $(This).hide(); 
} else {
  $(This).show();
}

我希望我能够清楚地描述问题并希望得到您的帮助。 非常感谢 托马斯

【问题讨论】:

  • 这段代码真的有效吗?我问,因为问题中有几个语法问题。我想知道这些只是创建问题时犯的错误,还是它们实际上存在于您的代码中。检查控制台是否有错误
  • 您好,我是通过复制和粘贴完成的,并添加了各种空格。

标签: jquery select show-hide option


【解决方案1】:

对不起!!再次: 是的,代码完全可以工作。

$('#selectkk').load('JSON/kk_select_box.php?' + $.param({
          kk: encodeURIComponent(''),
         plz: encodeURIComponent(''),
         ort: encodeURIComponent(''),        
     }),
                // callback function after selectbox has load 
                function(){
                    var i, filter,
                    $input = $('#ort_kk'),          
                    $options =$('#select_kk').find('option')                    
                    $input.keyup(function(){
                            filter = $input.val()
                            $options.each(function(){
                                var option_text=$(this).text();
                                var pos = option_text.search(filter);
                                if( pos == -1 ){ 
                                    $(this).remove(); }
                                })

                    });

                }                 
           );

但是,这行不通:

...
    if (pos == -1) {
      $(this).hide(); 
    } else {
      $(this).show();
    }
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多