4

假设一个 html 文档:

<html>
  <head>
  </head>
  <body>
    <li id="eee">
      <li>aaa</li>
      <span>bbb</span>
        ...
          <div>
            <button id="ccc">ddd</button>
          </div>
        ...
    </li>
  </body>
</html>

使用$('#ccc').closest('li')jQuery 将选择<li id="eee">...</li>- 最近的祖先<button id="ccc">。是否可以选择<li>aaa</li>“真正”最接近<li>的元素<button id="ccc">(因此,它不必是祖先,但足以成为其中一个祖先的兄弟姐妹)?

更新:

有效的 html (特别是 @PSL 家伙,已经删除了他的评论):

<html>
  <head>
  </head>
  <body>
    <div id="eee">
      <div>aaa</div>
      <span>bbb</span>
      <ul>
        <li>fff</li>
        <li>
          <button id="ccc">ddd</button>
        </li>
      </ul>
    </li>
  </body>
</html>

如何在<div>aaa</div>不使用parent()函数的情况下,但使用 smth. 像trueClosest('div')考虑兄弟姐妹,祖先和祖先的兄弟姐妹?

我只想知道,jQuery 有没有这样的功能?

4

2 回答 2

7

可以使用以下内容:

$('#startingElement').closest(':has(#desiredElement)').children('#desiredElement')

所以:找到最接近的元素#startingElement#desiredElement然后通过children(function);

于 2013-06-01T22:30:24.287 回答
0

这有帮助吗?
在为父母/兄弟姐妹遍历 DOM 时,我经常使用这种方法

$(this).parent().parent().find('#something')
于 2013-06-01T04:26:52.727 回答