javascript - 为 javascript/jquery 选择同级和父级 div

标签 javascript jquery children parents

嗨,这只是一个一般性问题。当制作 javascript/jquery 时,使用特定类来指定特定同级 div 或父 div 的最简单方法是什么。

场景是这样的

<div class="a">
<div class="b"> </div>
<div class="c">
<div class="d"> </div> 
</div>
</div>

我想点击 div class b 打开 div class c。我还想单击 div class d 关闭 div class c。 div 类 b 是 div 类 c 和 div 类 c 的同级 div,并且 div 类 c 是 div 类 d 的父级。

javascript 引用其 parent 或 sibling 非常重要,因为 div 类 a(容器)将重复多次,并且 div 类 b 和 d 的每个不同实例应在单击时打开不同的 div,而不是全部打开所有实例与 div 类 c.

到目前为止,我已经考虑过使用类似的东西

event.target.getElementsByTagName("div")[]

- 但实际上我认为这只寻找特定 div 的 child ,这确实不是我想要的,因为我正在寻找指示 sibling 和 parent 。任何知道如何做到这一点的人都可以指出我正确的方向吗?

最佳答案

您可以通过 jQuery 的 .sibling() 方法访问同级:

$(.b).click(function () {
  $(this).siblings('.c').addClass('open');
});

要进行更精确的同级选择,您可以使用 .prev('.c').next('.c')

还有一个general sibling selector由波形符 ~ 表示:

$('.b ~ .c');
// or
document.querySelectorAll('.b ~ .c');

要在单击 .d 时关闭 .c,我将依赖事件冒泡:

$('.c').on('click', function (e) {
  if ($(e.target).is('.d')) $(this).removeClass('open');
});

关于javascript - 为 javascript/jquery 选择同级和父级 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27177303/

相关文章:

javascript - 获取具有 ID 的父元素的子元素的子元素

Android:如何动态更改 subview 的大小以适应父 View 的大小?

javascript - 如何从 JavaScript 对象生成校验和?

javascript - 如何在我的 React 表单提交处理程序中正确捕获和解析错误?

javascript - PHP、AJAX、JQuery 获取返回值

css - 无法在 div 中显示背景图像

javascript - 长轮询 jQuery 在 IE 中不起作用

javascript - 在 JS 中从 Chrome 扩展程序向我的 Rails API 发出基本请求

jquery - 从 jQuery 选择中返回单个对象而不是数组的最佳方法是什么?

jquery - Javascript 转换为命名空间并调用函数