jquery - 选择框选项 remove() 有效,但 hide() 无效
问题描述
我想根据输入字段的值显示和隐藏选择框选项。奇怪的是,这只适用于$('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();
}
我希望我能够清楚地描述问题并希望得到您的帮助。非常感谢托马斯
解决方案
对不起!!再一次:是的,代码完全可以工作。
$('#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();
}
...
推荐阅读
- python - 无法连接到在线activemq
- android - Webview 图像不会在真实设备上加载
- singlestore - Memsql 工作室显示黑屏
- python - 使用 Visual Studio Code 为外部 python 解释器设置配置文件
- laravel - 区分大小写在带有大写字母的服务器上的 sluggable 中不起作用
- javascript - 传递事件和 $event 之间有区别吗?
- plex - NZBGet - 安装问题。nzbget:找不到命令
- node.js - Nodemon中的神秘参数-r
- python - TypeError: wrapper() 接受 1 个位置参数,但给出了 2 个
- elasticsearch - 使用输入数组进行 Elasticsearch 过滤,其中