You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请教jQuery代码中.toggle()内.indexOf(value)的具体作用

jQuery表格搜索中indexOf(value)的作用解析

嘿,我来帮你把这段代码里的核心逻辑拆解明白!

首先咱们先聚焦到你疑惑的核心代码行:

$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)

我拆成几步给你讲清楚:

  • 先看$(this).text().toLowerCase():这里的$(this)指的是当前遍历到的表格行(<tr>),这部分代码是把该行所有文本内容转成小写——目的是让搜索不区分大小写,不管用户输入大写还是小写,都能匹配到对应内容。
  • 重点来了:indexOf(value)是JavaScript字符串的原生方法,它的作用是在当前行的文本里查找value(也就是用户输入的搜索词,已经转成小写)第一次出现的位置。如果找到了搜索词,它会返回一个≥0的索引值(字符串索引从0开始);如果整行文本里完全没找到这个搜索词,就返回-1。
  • 接着indexOf(value) > -1:这个判断其实就是在问「当前行的文本里包含用户输入的搜索词吗?」如果包含,结果是true,不包含就是false。
  • 最后$(this).toggle(...):jQuery的toggle()方法在这里接收一个布尔值参数——传true就显示该行,传false就隐藏该行。

再把修正转义字符后的完整代码贴出来,你能更直观地看整体逻辑:

$(document).ready(function() {
  $("#myInput").on("keyup", function() {
    var value = $(this).val().toLowerCase();
    $("#myTable tr").filter(function() {
      $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
    });
  });
});

整体流程就是:用户在输入框敲键盘时,实时获取输入内容并转成小写;然后遍历表格每一行,检查该行文本是否包含搜索词,包含就显示、不包含就隐藏,以此实现表格的实时搜索功能!

内容的提问来源于stack exchange,提问作者UI Developer Nepal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:06:10