Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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 为什么.each与jQuery选择器一起使用,然后又与$一起使用(this)_Javascript_Jquery - Fatal编程技术网

Javascript 为什么.each与jQuery选择器一起使用,然后又与$一起使用(this)

Javascript 为什么.each与jQuery选择器一起使用,然后又与$一起使用(this),javascript,jquery,Javascript,Jquery,我有下面一段代码,我已经修改过以适应我的文档,它可以工作,但我不明白为什么它会使用。每一段都使用两次? 我在下面代码中的注释应该表明我的困惑所在 函数搜索函数(值){ //这将在每个tr中循环并运行该函数 $('#results tr')。每个(函数(){ var found='false'; //$(this)然后选择tr,然后(再次!)为If语句运行每个tr。 $(this).each(function(){ if($(this).text().toLowerCase().indexOf(v

我有下面一段代码,我已经修改过以适应我的文档,它可以工作,但我不明白为什么它会使用。每一段都使用两次? 我在下面代码中的注释应该表明我的困惑所在

函数搜索函数(值){
//这将在每个tr中循环并运行该函数
$('#results tr')。每个(函数(){
var found='false';
//$(this)然后选择tr,然后(再次!)为If语句运行每个tr。
$(this).each(function(){
if($(this).text().toLowerCase().indexOf(value.toLowerCase())>=0){
found='true';
}
});
如果(找到=='true'){
$(this.show();
}否则{
$(this.hide();
}
});
};
我已尝试删除第二个。每一个,但代码中断。任何帮助都将不胜感激

谢谢

内部
$(this)。每个(…)
实际上将在集合上循环,该集合只包含一个
tr
-元素。因此,在这种情况下,它是完全冗余的,可以删除第二个
each()

可能一开始的想法是在每行的每个单元格上循环,有点:

$('#results tr')。每个(函数(){
$(this).find('td').each(function(){
//...
});
});
但是不能随机隐藏/显示单元格,因为这样会破坏表格布局。可能作者得到了这一点,并删除了
.find('td')
片段:)只是一个假设…

内部
$(此)。每个(…)
实际上将在只包含一个
tr
-元素的集合上循环。因此,在这种情况下,它是完全冗余的,可以删除第二个
each()

可能一开始的想法是在每行的每个单元格上循环,有点:

$('#results tr')。每个(函数(){
$(this).find('td').each(function(){
//...
});
});

但是不能随机隐藏/显示单元格,因为这样会破坏表格布局。可能作者得到了这一点,并删除了
.find('td')
部分:)只是一个假设…

代码应该在没有第二个的情况下工作。不确定删除时为什么会断开。您可以共享此应用的标记吗?如果内部标记是
$(“td”,this)
,则更有意义。另外,程序员似乎不知道布尔类型。我创建了一个工作测试,并注释了
$(this).each(function(){
})它仍然可以工作。只是为了确保,在删除第二个.each()时,您是否正确删除了与之关联的相应括号?没有第二个括号,代码应该可以工作。不确定删除时为什么会断开。您可以共享此应用的标记吗?如果内部标记是
$(“td”,this)
,则更有意义。另外,程序员似乎不知道布尔类型。我创建了一个工作测试,并注释了
$(this).each(function(){
})它仍然有效。只是为了确保,在删除第二个时。each()是否正确删除了与其关联的相应括号?