2011-02-09 52 views
2

jQuery中有一种方法可以返回最近的同级()div并检查当前类吗?使用jQuery检查最近的sibling()div上的css类?

我有一个项目的可视化垂直列表,其中一些项目有一个1px边框(将它们分开 - 高级项目)或根本没有边框(标准项目)。当一件高级物品夹在两个标准物品之间时,它看起来不错,但是当两件或三件高级物品堆叠在一起时,它们之间的边界会变成2px厚。

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

任何人都可以帮我吗?对不起,如果这个问题很复杂,很难解释!

回答

6
if ($("#current-div").prev().hasClass("someClass")) { 
    // logic here 
} 
+0

太好了,谢谢你的快速响应! – Walker 2011-02-09 22:11:34

1

转发.nextAll([selector])或返回.prevAll([selector])或两种方式.siblings([selector])

如果DIV是真正的一个兄弟,你应该能够做到

if($(this).prev('.item.featured-item').length){ 
    // yes it is featured 
} 
else{ 
    no, not featured 
} 
2

.prev()之前给你的前一个同级。你既可以做:

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

if(element.prev('.featured-item').length > 0) 
2

我真的不知道要检查的兄弟姐妹或父节点。无论如何,如果“上述”是指父母,这将做到这一点:

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

对于直接的家长,你可能想使用.parent()而不是.closest() 如果这些因素都在同一水平上和“以上 “意为” 之前“去.prev()

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

参考文献:.prev().closest().parent()

1

如果我找到了你,this小提琴应该是你在找什么。