Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.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/87.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/4/unix/3.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 - Fatal编程技术网

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>