在jQuery中选择父元素的下一个同级元素的子元素

6
这是我的DOM的一部分示例:
```

enter image description here

当单击具有class为“ but ”的div(位于前一个偶数div中)时,我想在class为“ des ”的div上触发效果(位于奇数div中)

如何从“ but ”选择“ des ”?

```
如何从“ but ”选择“ des ”?
2个回答

8

简单来说,如果 this 是被点击的 .but 元素:

$(this).parent().next().children('.des')

这假设没有其他元素妨碍,即 .even.odd 元素是直接兄弟元素,并且 .but.des 分别是其对应的 .even.odd 祖先的直接子元素。
效率较低,但可保证在树中任意数量的额外(非匹配)元素下工作的方式是:
$(this).closest('.even').nextAll('.odd').first().find('.des')

2
这取决于你的标记语言。像这样的东西应该能够正常工作,但需要注意格式:

它取决于您的标记语言。尽管如此,类似以下内容应该可以正常工作:

$('.but').on('click', function () {
  $(this).closest('.even').next().find('.des');
});

为了绝对安全地避免干扰 DOM 元素,您应该使用 .nextAll('.odd').first() 而不是 .next() - Alnitak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接