2011-02-09 29 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小提琴應該是你在找什麼。

相關問題