jQuery选择:遍历,然后退回

chi*_*ior 6 jquery css-selectors

我正在努力学习如何使用jQuery选择特定元素.这里列出的条件:

  • 在我的函数的相关点,this引用a span.
  • span可能是一个孩子,一个大孩子,或者一个伟大的孩子,但是在层次结构的某个地方,它包含在一个td.
  • 我想选择最后一个span内部td.
  • span可能this,也可能是另一种span.
  • span要选择的标签是包含的直接子项td,因此last-child是可行的.但是,为了将来的灵活性,首选的解决方案并不是假设它是直接的孩子.

到目前为止,我使用它来选择正确的父元素:

$(this).parents('td')
Run Code Online (Sandbox Code Playgroud)

我不知道如何遍历DOM树以获得span所选的最终内部td.谢谢!

编辑

根据我在下面的评论,也可以选择一个spandiv哪个,以最后一个为准.

Mar*_*c W 13

$(this).parents('td').children('span:last');
Run Code Online (Sandbox Code Playgroud)

应该做的伎俩.

编辑

我没有注意到你不仅要与直接的孩子打交道.如果你想要所有的后代,那么你会使用

$(this).parents('td').find('span:last')
Run Code Online (Sandbox Code Playgroud)

我曾经认为span永远都是孩子的td.

最终编辑

为了后人的缘故(并且让人们在将来更容易找到这个答案),因为这已经被接受作为答案,Ben在他的回答中提出了一个更优雅的解决方案,我将把它放在这里:

$(this).closest('td').find('div,span').filter(':last')
Run Code Online (Sandbox Code Playgroud)

正如Ben所说,你必须使用JQuery 1.3 closest()才能工作.干得好!:-)


Mar*_*ark 5

在这种情况下,我更喜欢使用最接近的父母.您不必担心祖先中有两个或更多'td'元素.

$(this).closest('td').children("span:last")
Run Code Online (Sandbox Code Playgroud)