javascript - 如何根据 child 在 DOM 树中的位置选择 child

标签 javascript jquery html

假设我有这样的html

<div class='parent'>
    <div class='dad'>
        <div class='teen'>
            <div class='baby'>
            </div>
        </div>
    </div>
    <div class='dad'>
    </div>
</div>

如何根据 div 与父级的距离来定位 div?例如.baby 前面有 3 个父对象,.teen 前面有 2 个父对象。有什么办法吗?因为我最终想做的是针对每个第二个 child ()。所以在这种情况下,我想选择 .dad.baby。但我不想选择固定数量,我希望它无限选择 DOM 树中的每个 2nd child()。

最佳答案

var $result = $("div").filter(function() {
  return $(this).parents("div").length % 2 != 0; // if the number of div parents is not a pair number
});

$result.each(function() {
  $(this).css("background", "red");
});
div {
  border: 1px solid black;
  background: white;
  padding: 10px;
  margin: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <div>
    <div>
      <div>
      </div>
      <div>
        <div>
        </div>
      </div>
    </div>
  </div>
  <div>
  </div>
</div>

注意:如果你想包括所有的 parent ,那么使用这个:

return $(this).parents().length % 2 != 0;

关于javascript - 如何根据 child 在 DOM 树中的位置选择 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42359114/

相关文章:

javascript - 开发一个非常简单的浏览器扩展

javascript - jQuery UI : "Uncaught Syntax Error: Unexpected token <" in one environment, 但不是另一个

javascript - 停止同一按钮上的一个点击事件

不同页面中的 HTML5 音频独立播放

html - 如何在文本框MVC中制作多行?

javascript - jQuery 健全性检查

javascript - 在 Puppeteer 中使用伪类选择器评估类

javascript - 如何在 JavaScript 中将对象作为字段添加到另一个现有对象

php - Jquery 解析 XML 文件

python - 如何使用标准库在 python 中解析格式错误的 HTML