当前位置: 首页 > 知识库问答 >
问题:

向表筛选添加无结果消息

茅才
2023-03-14

我有下面的代码,它确实过滤了一个表,但是当没有结果时,它是空的。

有人能帮我在这里添加一个“找不到结果”的消息显示什么都没有找到吗?

null

$(document).ready(function() {
  $("#table_search").on("keyup", function() {
    var value = $(this).val().toLowerCase();
    
    $("#filter tr").filter(function() {
      $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
    });
  });
});
<table>
  <tbody id="filter"></tbody>
</table>

null

共有1个答案

周洋
2023-03-14

首先,注意filter()的使用不太正确。它用于根据函数参数中提供的谓词条件减少一组元素,函数参数返回一个布尔值。相反,您当前的逻辑正在使用它作为一种基本的循环机制。

对于此问题,可以使用filter()通过文本查找匹配行,然后根据筛选的行数隐藏或显示“不匹配”消息。像这样的东西:

null

jQuery($ => {
  let $rows = $('#filter tr');
  let $tfoot = $('tfoot');

  $("#table_search").on("input", function() {
    var value = this.value.toLowerCase();    
    if (!value) {
      $rows.show();
      $tfoot.hide()
      return;
    }
    
    let $filteredRows = $rows.filter((i, el) => el.innerText.toLowerCase().indexOf(value) != -1);    
    if ($filteredRows.length) {
      $tfoot.hide();
      $rows.hide();
      $filteredRows.show()
    } else {
      $rows.hide();
      $tfoot.show();
    }
  });
});
tfoot { display: none; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="table_search" />
<table>
  <tbody id="filter">
    <tr><td>Lorem</td></tr>
    <tr><td>Ipsum</td></tr>
    <tr><td>Dolor</td></tr>
    <tr><td>Sit</td></tr>
    <tr><td>Amet</td></tr>
    <tr><td>Consectetur</td></tr>
    <tr><td>Adipiscing</td></tr>
    <tr><td>Elit</td></tr>
  </tbody>
  <tfoot>
    <tr><td>No matches</td></tr>   
  </tfoot>
</table>
 类似资料:
  • 这一组数据在进行groupby前已经完成筛选,但进行groupby聚合后的结果显示是利用未筛选的数据进行的聚合,就像下面的结果,在groupby前已经完成点击量非0过滤,但最后仍存在含0的资源,询问chatGPT给的方案是可能用索引前的数据进行的聚合,重置索引后仍无法解决,请教大牛是否遇到过类似的问题,虽然可以在聚合后重新进行filter过滤,但这个问题搞得很焦灼 代码源文本

  • http://www.django-rest-framework.org/api-guide/filtering/#filtering-abs-query-parameters http://www.django-rest-framework.org/api-guide/fields/#serializermethodfield

  • 筛选向导让你方便为你的表网格创建及应用你指定的筛选条件。此外,它可让你保存筛选条件到一个设置文件供将来使用。在工具栏点击 筛选 来激活编辑器。 要添加一个新条件到准则,只需简单地点击 <添加>。 点击列框(核取钮旁)并选择一个表列。你可以从列表中选择 [附加筛选] 来手动输入准则。 点击运算符框(列框旁)并选择一个筛选运算符。 筛选运算符 结果 等 于 <?> 字段 = '值' 不等于 <?> 字

  • 筛选向导让你快捷地为你的数据网格创建及应用指定的筛选条件。此外,它更可让你保存筛选条件到一个配置文件以备日后使用。在工具栏点击 “筛选”来启用筛选。 创建筛选 若要添加一个新的条件到准则,只需简单地点击 。如果你需要在括号内添加条件,点击 。 【提示】若要在现有的条件添加括号,只需简单地右击已选择的条件并选择“使用括号分组”。若要移除括号,请右击括号并选择“删除括号”或“删除括号和条件”。 点击字

  • 筛选向导让你快捷地为你的数据网格创建及应用指定的筛选条件。此外,它更可让你保存筛选条件到一个配置文件以备日后使用。在工具栏点击 来启用筛选。 创建筛选 若要添加一个新的条件到准则,只需简单地点击 。如果你需要在括号内添加条件,点击 。 【提示】若要在现有的条件添加括号,只需简单地按住 Control 键并点按已选择的条件,然后选择“使用括号分组”。若要移除括号,请按住 Control 键并点按括号

  • 筛选向导让你快捷地为你的数据网格创建及应用指定的筛选条件。此外,它更可让你保存筛选条件到一个配置文件以备日后使用。在工具栏点击 “筛选”来启用筛选。 创建筛选 若要添加一个新的条件到准则,只需简单地点击 。如果你需要在括号内添加条件,点击 。 【提示】若要在现有的条件添加括号,只需简单地右击已选择的条件并选择“使用括号分组”。若要移除括号,请右击括号并选择“删除括号”或“删除括号和条件”。 点击字

  • 我尝试创建另一个FilterChainProxy bean,在其链列表中包含上述两个过滤器,并将该bean作为自定义过滤器添加到之前的名称空间配置中,过滤器似乎可以工作,但我的JSF导航中断了,特别是在commandLink中(我认为使用此FilterChainProxy时AJAX调用失败) 有没有人可以就如何将这两个过滤器和可能的其他过滤器添加到Spring Security过滤器链提出任何想法

  • 我试图为一个问题找到一个解决方案,在这个问题上,我需要根据多个标准来细化结果。我有多个选择标准: 水果-苹果橙子葡萄 蔬菜-番茄土豆西兰花 坚果-核桃花生杏仁 谷物-玉米小麦大米 香料-肉桂姜椒 用户只能从每个组中选择一个标准,例如,您可以选择苹果,但不能选择橘子或葡萄。参见jsfiddle。 然后我有多个篮子,里面有不同的物品。 但问题是,这些结果必须基于多个标准进行精炼。例如,我选择了苹果,然