Javascript jquery筛选器的通配符

Javascript jquery筛选器的通配符,javascript,jquery,datatables,Javascript,Jquery,Datatables,我正在使用下面的脚本筛选我的表 <script> $(document).ready(function() { $('#citylist').change(function() { var value = $('#citylist').val(); $("#myTable tr").filter(function() {

我正在使用下面的脚本筛选我的表

<script>
        $(document).ready(function() {
            $('#citylist').change(function() {
                var value = $('#citylist').val();
                $("#myTable tr").filter(function() {
                    $(this).toggle($(this).text().indexOf(value) > -1)
                });
            });
        });
    </script>

$(文档).ready(函数(){
$('#citylist')。更改(函数(){
var值=$('#citylist').val();
$(“#myTable tr”).filter(函数(){
$(this).toggle($(this).text().indexOf(value)>-1)
});
});
});
这是我将要使用的示例设计

<select class="form-control" id="citylist">
       <option value="val1">val1</option>
       <option value="val2">val2</option>
       <option value="val3">val3</option>
       <option value="val4">val4</option>
</select>

瓦尔1
瓦尔2
val3
瓦尔4
这些函数运行良好,没有任何冲突

我想在一个选择选项中清除过滤器。因此,我想知道sql中是否有任何通配符(如
%
)用作执行此任务的选项值

我已经尝试使用
*
%
作为选项的值


如果您想重置过滤器(我认为您的意思是“在一个选择选项中清除过滤器”),您可以在下拉列表中添加一个选项,其中的值为空字符串,我们将不胜感激

例如:


--请选择--
爱丁堡
东京
旧金山
伦敦
但是,
$(“#citylist”).change(…)
函数中的逻辑有点奇怪-它将只查找显示页面中的记录(因此,如果使用分页,它将在其他页面中找不到匹配的记录),并将隐藏表的标题行。这是因为您是在DOM中搜索,而不是在DataTables数据中搜索

也许这是您真正想要的,但这不是您通常在数据表中执行过滤的方式

如果您希望以更常用的方式进行搜索,请参见以下示例:

$(文档).ready(函数(){
变量表=$('#myTable')。数据表({
--通常的表初始化在这里进行--
} );
$('#citylist')。更改(函数(){
var值=$('#citylist').val();
table.columns(2).search(value,false,false).draw();
} );
} );
这假设您有一个表,
City
列是表中的第三列(
table.columns(2)
-第一列的索引为零)

search(value,false,false)
中的布尔值表示是否要使用正则表达式(
false
),以及是否要使用智能搜索(也称为
false

您可以阅读for
search()


您还可以看到一个示例,其中下拉搜索基于使用正则表达式。这在您的特定示例中不需要(因为您匹配的是整个城市名称)。

您的意思是?@Swati Yes。但是我已经试过了
City
City
,但是没有一个有效。所有字符串中都存在空字符串<代码>“foo”.indexOf(“”/=>0
例如
all