2

jQuery中有没有办法返回最近的兄弟()div并检查当前类?

我有一个项目的视觉垂直列表,其中一些项目要么有 1px 边框(将它们分开 - 高级项目),要么根本没有边框(标准项目)。虽然将高级物品夹在两个标准物品之间看起来很棒,但当两个或三个高级物品堆叠在一起时,它们之间的边框最终会变成 2px 厚。

我正在寻找一种方法,使用 jQuery 或其他方式来检查<div class="item">当前 div 上面是否具有类 features-item (因此检查 div 是否等于<div class="item featured-item">)。从那里,我将设置另一个类名,将边框顶部设置为 0px,并使视觉效果更好一点。

谁能帮我吗?对不起,如果这个问题很复杂,很难解释!

4

5 回答 5

6
if ($("#current-div").prev().hasClass("someClass")) {
  // logic here
}
于 2011-02-09T21:53:06.713 回答
2

.prev()给你以前的兄弟姐妹。你可以这样做:

if(element.prev().hasClass('featured-item'))

或者

if(element.prev('.featured-item').length > 0)
于 2011-02-09T21:52:43.007 回答
2

我不确定您是否要检查兄弟节点或父节点。无论如何,如果“ above ”表示父级,则可以这样做:

if( $('div').closest('.item').hasClass('.featured-item') )  { }

对于您可能想要使用的直接父级,.parent()而不是.closest() 如果这些元素处于同一级别并且“以上”表示“之前”,请使用.prev()

if( $('div').prev(.item).hasClass('.featured-items') ) { }

参考:.prev() , .closest() , .parent()

于 2011-02-09T21:54:51.940 回答
1

前进.nextAll([selector])或后退.prevAll([selector])或双向.siblings([selector])

如果 div 在你应该能够做到之前确实是一个兄弟姐妹

if($(this).prev('.item.featured-item').length){
    // yes it is featured
}
else{
   no, not featured
}
于 2011-02-09T21:52:40.533 回答
1

如果我没听错,这把小提琴应该是你要找的。

于 2011-02-09T22:05:47.357 回答