Javascript 这个jquery代码的含义
我发布了一个问题,得到了一个很好的回复,但是有人能解释一下这里到底发生了什么吗:Javascript 这个jquery代码的含义,javascript,jquery,Javascript,Jquery,我发布了一个问题,得到了一个很好的回复,但是有人能解释一下这里到底发生了什么吗: $(this).closest('tr').next('tr').find("img.cc").toggle() .closest('tr').siblings('tr').find("img.cc").hide(); 切换下一表格行中img.cc的可见性,并隐藏表格中的所有其他img.cc。此代码可能取自函数上下文的中间部分 第一行是这样写的: 从this(调用的元素)开始,查找最近的(父项)
$(this).closest('tr').next('tr').find("img.cc").toggle()
.closest('tr').siblings('tr').find("img.cc").hide();
切换下一表格行中img.cc的可见性,并隐藏表格中的所有其他img.cc。此代码可能取自
函数上下文的中间部分
第一行是这样写的:
从this
(调用的元素)开始,查找最近的(父项)tr
,然后查找下一个tr
(意思是此
父项的兄弟)和使用“cc”的类和切换其显示值查找img
(意思是,如果它是可见的,则隐藏它,如果它是隐藏的,则显示它
第二行从它结束的地方开始,说在最近(父)的兄弟tr
的下一个tr
中找到一个img
,并隐藏它。它执行以下操作,每个步骤都与调用的方法相关:
.nexist('tr')
-从当前元素一直到最近的
祖先(或者它本身,如果它已经是
)
.next('tr')
-转到下一个同级行
.find(“img.cc”)
-在该行中查找
.toggle()
-切换它(隐藏时显示,显示时隐藏)
.closest('tr')
-返回到
.siblines('tr')
-选择所有同级(其他)行
.find(“img.cc”)
-查找其中的所有
.hide()
-隐藏它们
这可能是一个更有效的咬,虽然使用跳回到链中,如下所示:
$(this).closest('tr').next('tr').find("img.cc").toggle()
.end().siblings('tr').find("img.cc").hide();
不是我的否决票,但是你错过了第一次遍历到
:)正确,为了完整性,我将完成它:)我认为end()
不是他想要的。见adardesign答案。尼克-为我辩护;o) 我想在我的回答中使用.end()
,但我认为我应该让事情尽可能简单。我想我可能是对的o) +1以非常简洁的方式表达树结果。
<tr> <<-- 1.) <<-- 6.)
<td>
<a href="#" class="xx"></a> <<-- we start here
</td>
<td>
data
</td>
</tr>
<tr> <<-- 2.) <<-- 5.)
<td>
<img src="#" class="cc" /> <<-- 3.) <<-- 4.)
</td>
</tr>
<tr> <<-- 6.)
<td>
<a href="#" class="xx"></a>
</td>
<td>
data2
</td>
</tr>
<tr> <<-- 6.)
<td>
<img src="#" class="cc" /> <<-- 7.)
</td>
</tr>