【发布时间】:2021-04-16 00:46:55
【问题描述】:
假设我有三种不同类型的产品 HTML,我只想为那些有一个子元素或同级元素的产品选择 product-block 元素,并且输入元素的类为 mySelector。
- 类型 A 包含包含“mySelector”的元素。
- 类型 B 在其内部或下方没有元素“mySelector”,因此我们不想选择它。
- Type C 后面有元素“mySelector”。
目标是选择类型 A 和 C 的产品块 <div>,它们有一个子级或兄弟级 mySelector。
产品块类型 A
<div class="A B C">
<a href="#"></a>
<input type="hidden" class="mySelector">
</div>
产品块类型 B
<div class="MM NN OO">
<a href="#"></a>
</div>
产品块类型 C
<div class="X Y Z">
<a href="#"></a>
</div>
<input type="hidden" class="mySelector">
我想过滤器可以工作,但我只能选择一种带有这样过滤器的产品块:
jQuery('.mySelector')
.filter(function () {
if (jQuery(this).prev().hasClass('Z')) {
return jQuery(this).prev();
}
})
另一种方法是使用jQuery('.mySelector').parent()。但是我将无法选择 mySelector 是兄弟的类型 C。
【问题讨论】:
-
同时使用(获取所有父级并获取所有上一个)然后与
.add()结合 - 请参阅stackoverflow.com/a/323969/2181514(不打算作为重复项) -
我刚遇到同一个。谢谢!
标签: jquery