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”)
,我发现有时倒读它(在您的脑海中)来理解层次结构更容易
退回—
元素
元素内部(但不是第一个元素)
元素内的
元素中现在来看一些输入和输出示例
- 如果
的值为“jet”,该函数将显示最后一个val
,即带有字符串-
的一个thejetsons
我希望这能对你的问题有所帮助
-这行代码表示您想要$(“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”)
,我发现有时倒读它(在您的脑海中)来理解层次结构更容易
退回—
元素
元素内部(但不是第一个元素)
元素内的
元素中现在来看一些输入和输出示例
- 如果
的值为“jet”,该函数将显示最后一个val
,即带有字符串-
的一个thejetsons
我希望这能对你的问题有所帮助
$(“表>正文>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();