2011-02-09 11 views
2

jQueryに最も近い兄弟()divを返し、現在のクラスをチェックする方法はありますか?jQueryで最も近い兄弟()divのcssクラスを確認していますか?

私は、いくつかのアイテムが1pxの境界線(プレミアムアイテムを区別するためのもの)または全く境界線を持たないもの(標準アイテム)を持つ視覚的な頂点リストを持っています。プレミアムアイテムが2つの標準アイテムの間に挟まれているときには素晴らしいように見えますが、2〜3つのプレミアムアイテムが積み重なると、それらの境界線は2pxの厚さになります。

することは、私は、現在のdiv上記<div class="item">がクラス特色項目(DIVは<div class="item featured-item">に等しいのであればチェックを)持っているかどうかを確認するために、それ以外の場合はjQueryのまたはを使用して、方法を探しています。そこから、別のクラス名を設定してborder-topを0pxに設定し、ビジュアルが少し良くなるようにします。

誰でもお手伝いできますか?申し訳ありませんが、この質問が複雑な場合、説明するのは難しいです!

答えて

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

すばらしいお返事ありがとうございます。 – Walker

1

forward .nextAll([selector])またはback .prevAll([selector])または両方の方法.siblings([selector])

あなたは

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

.prev()を行うことができるはずの前にdivが本当に1人の兄弟である場合に前の兄弟を与えます。あなたはどちらか行うことができます:

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

または

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

私はあなたが兄弟や親ノードを確認したい、本当にわかりません。何であれ、「上記は」親を意味している場合、これはそれを行います。

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

あなたはそれらの要素が同じレベルと「上記上にある場合は代わりに.closest().parent()を使用する場合があります直接の親のために.prev().closest()、:.prev()

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

参照して行く」"を意味します"

1

もし私があなたに合っていれば、thisはあなたが探しているものでなければなりません。

関連する問題