Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Jquery中查询表_Javascript_Jquery_Jquery Selectors - Fatal编程技术网

Javascript 在Jquery中查询表

Javascript 在Jquery中查询表,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我遇到了这个代码 $("#search").keyup(function(){ var val = $.trim(this.value).toLowerCase(); $("table > tbody > tr:gt(0) ").hide(); if(val.length){ $("table > tbody > tr:gt(0) > td").filter(function(){ return this.innerHTML

我遇到了这个代码

$("#search").keyup(function(){
  var val = $.trim(this.value).toLowerCase();
   $("table > tbody > tr:gt(0) ").hide();

   if(val.length){
     $("table > tbody > tr:gt(0) > td").filter(function(){
       return this.innerHTML.toLowerCase().indexOf(val) >=0;
     }).parent().show();
   } else $("table > tbody > tr:gt(0)").show();
});
用于在jQuery中查询表。这是HTML标记

<p>
  <input id = "search" type = "text">
</p>
<table id ="accounts">
  <tr>
    <th>Username</th>
    <th>Password</th>
  </tr>         
  <tr>
    <td>Metasm</td>
    <td>password1992</td>
  </tr>
  <tr>
    <td>superadmin</td>
    <td>adminpassword</td>
  </tr>         
  <tr>
    td>skyrocketeer</td>
    <td>thejetsons</td>
  </tr>
</table>
这部分具体做什么?它会返回什么

  • $(“table>tbody>tr:gt(0)>td”)
    -这行代码表示您想要
    元素中
    元素中的所有
    元素,而
    元素的索引大于
    0
    (即跳过第一行。
    gt()
    简单大于)。
    选择器声明我们只需要第一级子元素中的元素-我们不想深入到第一组子元素之外

  • 该函数将把匹配的元素集减少为与选择器匹配或通过函数测试的元素集

  • 这里的条件语句在每个元素的innerHTML中查找搜索字符串的某个索引
    val

    this.innerHTML.toLowerCase().indexOf(val)>=0

因此,这意味着(记住,我们正在迭代从第一个选择器中找到的所有元素)我们正在寻找元素的
innerHTML
中出现的字符串
val
。innerHTML还通过
toLowerCase()
函数传递,该函数的名字表明它是一个函数-将所有字符转换为小写形式

呸…现在,在所有这些之后,我们只剩下一个特定的元素列表。满足上述所有规格的元件。对于这些元素中的每一个,代码都将使用
.parent()
函数定位它们的父元素(记住我们谈论的是
元素,所以它们的父元素应该是
),并使用
.show()
函数在屏幕上显示它们


对于第一个选择器-
$(“table>tbody>tr:gt(0)>td”)
,我发现有时倒读它(在您的脑海中)来理解层次结构更容易

退回—

  • 我正在寻找
    元素
  • 位于
    元素内部(但不是第一个元素)
  • 位于
    元素内的
  • 所有元素都位于
    元素中

  • 现在来看一些输入和输出示例

    • 如果
      val
      的值为“jet”,该函数将显示最后一个
      ,即带有字符串-
      thejetsons
      的一个
    • 给定的值>代码> Valu/代码>为“密码”,函数将在中间显示两个代码> < /C>元素。包含“password1992”和“adminpassword”的密码

    我希望这能对你的问题有所帮助

    • $(“table>tbody>tr:gt(0)>td”)
      -这行代码表示您想要
      元素中
      元素中的所有
      元素,而
      元素的索引大于
      0
      (即跳过第一行。
      gt()
      简单大于)。
      选择器声明我们只需要第一级子元素中的元素-我们不想深入到第一组子元素之外

    • 该函数将把匹配的元素集减少为与选择器匹配或通过函数测试的元素集

    • 这里的条件语句在每个元素的innerHTML中查找搜索字符串的某个索引
      val

      this.innerHTML.toLowerCase().indexOf(val)>=0

    因此,这意味着(记住,我们正在迭代从第一个选择器中找到的所有元素)我们正在寻找元素的
    innerHTML
    中出现的字符串
    val
    。innerHTML还通过
    toLowerCase()
    函数传递,该函数的名字表明它是一个函数-将所有字符转换为小写形式

    呸…现在,在所有这些之后,我们只剩下一个特定的元素列表。满足上述所有规格的元件。对于这些元素中的每一个,代码都将使用
    .parent()
    函数定位它们的父元素(记住我们谈论的是
    元素,所以它们的父元素应该是
    ),并使用
    .show()
    函数在屏幕上显示它们


    对于第一个选择器-
    $(“table>tbody>tr:gt(0)>td”)
    ,我发现有时倒读它(在您的脑海中)来理解层次结构更容易

    退回—

  • 我正在寻找
    元素
  • 位于
    元素内部(但不是第一个元素)
  • 位于
    元素内的
  • 所有元素都位于
    元素中

  • 现在来看一些输入和输出示例

    • 如果
      val
      的值为“jet”,该函数将显示最后一个
      ,即带有字符串-
      thejetsons
      的一个
    • 给定的值>代码> Valu/代码>为“密码”,函数将在中间显示两个代码> < /C>元素。包含“password1992”和“adminpassword”的密码

    我希望这能对你的问题有所帮助

    $(“表>正文>tr:gt(0)>td”)
    将选择tr:gt(0)内的所有td。。。这是一个基本的jquery选择器

    选择这些td后,根据函数的返回值应用过滤器,如果返回true,则选择td

    然后,函数:
    返回此值。innerHTML.toLowerCase().indexOf(val)>=0
    表示如果
    td
    包含字符串,则返回true,否则返回

    所有这些都等于

    $("table > tbody > tr:gt(0) > td:contains('"+val+"')").parent().show();
    
    $(“表>正文>tr:gt(0)>td”)
    将选择tr:gt(0)内的所有td。。。这是一个基本的jquery选择器

    选择这些td后,根据返回的值应用过滤器
    $("table > tbody > tr:gt(0) > td:contains('"+val+"')").parent().show();