javascript - jQuery 选择最近元素的子元素

标签 javascript jquery

基本上我希望能够从子 level4 div 中选择 div level2 parent。我的应用程序没有这样的类,否则我只选择 level2 :)

<div class="level1">
  <div class="level2">
    <div class="level3">
      <div class="level4"></div>
    </div>
  </div>
  <div class="level2"> <!-- this is hidden -->
    <div class="level3">
      <div id="start" class="level4"></div>
    </div>
  </div>
</div>

我从 $('#start') 开始并搜索可见的第一个父项,但我没有找到返回该父项的子项的方法。在父级中搜索 $('#start') 似乎非常浪费,因为我从子级开始。

$('#start').closest(':visible') // returns level1
$('#start').closest(':visible').first() // returns the first level2. I can't just use second because the number of level2s can change.
$('#start').closest(':visible').children().each(function(){ /* do some search to check it contains `$('#start')` }) // seems very wasteful.

查看我要说的内容的另一种方式是;从中间开始,找到外面(可见元素),然后将一个元素移入。

最佳答案

这个怎么样:-

$('#start').parentsUntil(':visible').last();

这将为您提供所有隐藏的父 div,直到它的可见父 div 和 last() 将给出隐藏的最外层父 div。 last 不是位置上的选择器,它是集合中的 last()。

关于javascript - jQuery 选择最近元素的子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16742149/

相关文章:

javascript - 如何用父对象或字段包装 JSON 对象?

javascript - 在 http.get 回调中访问 $scope 日期

javascript - 如何使用 JavaScript 和 jQuery 覆盖 HTML tbody 表中每一行第一列的值?

javascript - 仅当下拉元素存在时才显示 tr/td 元素

javascript - history.pushState 如何设置浏览器显示条目的标题?

javascript - 事件开始定期调用函数

javascript - 基于用户输入的动态网站内容

php - 使用 PHP 和 AJAX 更新 HTML 表中的内容

javascript - 替代使用 eval()

javascript - 使用php javascript动态计算输入字段