回到链接jQuery的

前端之家收集整理的这篇文章主要介绍了回到链接jQuery的前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我以为在jquery里有一些东西允许你通过链条向后退。

我想这样做

var a = $(this).parent().addClass('test').goBackToParent().children('selectorHere').text()

所以基本上我想得到我拥有的对象的父项,并添加一个类名。一旦我这样做,我想通过它的孩子,找到一个孩子,匹配我的选择器,并得到它的文本。

我可以这样做还是我必须去

$(this).parent().addClass('test');
var a = $(this).parent().children('selectorHere').text()

编辑

我现在使用“结束”,但它不起作用,我举个例子,你可以试试 here

<!DOCTYPE html>
<html>
<head>
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<Meta charset=utf-8 />
<title>JS Bin</title>
<!--[if IE]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<style>
  article,aside,figure,footer,header,hgroup,menu,nav,section { display: block; }
</style>
</head>
<body>
  <table>
    <th>
      <tr>one</tr>
      <tr>two</tr>
    </th>
    <tr>
      <td id="test"><a href="#"><img src="http://ais.web.cern.ch/ais/apps/hrt/SMT%20v2/Images/btnbar_edit.png" /></a></td>
      <td class="selectMe">1</td>
    </tr>
  </table>
</body>
</html>


$(function()
  {
      $('#test').click(function()
                       {
                           // does not work
                           var a = $(this).parent().addClass('afb').end().children('.selectMe').text();
                           // works
                           var b = $(this).parent().children('.selectMe').text();
                         alert(a + ' -should have value');
                          alert(b + ' -works');
                         return false;
                       });
  });

解决方法

您正在寻找 end()方法
var a = $(this).parent().addClass('test').end()
               .children('selectorHere').text();

方法

Ends the most recent filtering
operation in the current chain and
returns the set of matched elements to
its prevIoUs state.

更新:根据您的html片段,您实际上不需要结束!关于jQuery的重要事情是,大多数非遍历方法返回一个自己的副本 – 所以如果你调用$(this).addClass(‘test’),你会得到一个$(this)的副本。

所以你的代码片段:

// does not work
var a = $(this)                       // points at #test
           .parent()                  // now refers to the tr which holds test
               .addClass('afb')       // still refers to the tr
               .end()                 // now we're back to #test
           .children('.selectMe')     // empty! there are no direct children of #test which match .selectMe
               .text();               // empty

相反,尝试没有结束:

// works
var a = $(this)                       // points at #test
           .parent()                  // now refers to the tr which holds test
               .addClass('afb')       // still refers to the tr
           .children('.selectMe')     // found the .selectMe td
               .text();               // returns '1'
原文链接:https://www.f2er.com/jquery/181749.html

猜你在找的jQuery相关文章