2

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

アイテムの視覚的な垂直リストがあり、一部のアイテムには 1 ピクセルの境界線 (それらを区別するため - プレミアム アイテム) があるか、境界線がまったくありません (標準アイテム)。2 つの標準アイテムの間にプレミアム アイテムを挟むと見栄えがよくなりますが、2 つまたは 3 つのプレミアム アイテムを重ねると、それらの間の境界線が 2px の太さになります。

jQueryなどを使用して、現在のdivの上にクラスの注目アイテムがあるかどうかを確認する方法を探してい<div class="item">ます(したがって、divが等しいかどうかを確認します<div class="item featured-item">)。そこから、別のクラス名を設定して border-top を 0px に設定し、ビジュアルの流れを少し良くします。

誰でも私を助けることができますか?この質問が複雑で、説明が難しい場合は申し訳ありません。

4

5 に答える 5

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

兄弟または親ノードを確認する必要があるかどうかはよくわかりません。「」が親を意味する場合、これはそれを行います:

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 に答える
2

.prev()前の兄弟を与えます。次のいずれかを実行できます。

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

また

if(element.prev('.featured-item').length > 0)
于 2011-02-09T21:52:43.007 に答える
1

前方.nextAll([selector])または後方.prevAll([selector])または双方向.siblings([selector])

あなたができるはずの前に、divが本当に1つの兄弟である場合

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 に答える