Проверяешь класс css на ближайшем div sibling () с помощью jQuery - PullRequest
2 голосов
/ 10 февраля 2011

Есть ли способ в jQuery вернуть ближайший div sibling () и проверить наличие класса?

У меня есть визуальный список предметов, в котором некоторые предметы либо имеют границу в 1 пиксель (для их выделения - товары премиум-класса), либо вообще не имеют рамки (стандартные предметы). В то время как это выглядит великолепно, когда премиальный предмет помещается между двумя стандартными предметами, когда два или три премиальных предмета складываются, границы между ними заканчиваются толщиной 2 пикселя.

Я ищу способ, используя jQuery или иным образом, проверить, имеет ли <div class="item"> над текущим div класс class featured-item (поэтому проверяет, равен ли div <div class="item featured-item">). Оттуда я установлю другое имя класса, чтобы установить для border-top значение 0px и сделать визуальные потоки немного лучше.

Кто-нибудь может мне помочь? Извините, если этот вопрос запутанный, трудно объяснить!

Ответы [ 5 ]

6 голосов
/ 10 февраля 2011
if ($("#current-div").prev().hasClass("someClass")) {
  // logic here
}
2 голосов
/ 10 февраля 2011

Я не совсем уверен, что вы хотите проверить братьев и сестер или родительские узлы. В любом случае, если « выше » означает «родитель», это будет сделано:

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

Для прямого родителя вы можете использовать .parent() вместо .closest() Если эти элементы находятся на одном уровне, и « выше » означает « до », перейдите с .prev()

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

Ссылки: .prev () , .closest () , .parent ()

2 голосов
/ 10 февраля 2011

.prev() дает вам предыдущего брата.Вы можете сделать:

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

или

if(element.prev('.featured-item').length > 0)
1 голос
/ 10 февраля 2011

Если я вас правильно понял, эта скрипка должна быть тем, что вы ищете.

1 голос
/ 10 февраля 2011

вперед .nextAll([selector]) или назад .prevAll([selector]) или в обе стороны .siblings([selector]).

Если div действительно один брат или сестра, прежде чем вы сможете сделать

if($(this).prev('.item.featured-item').length){
    // yes it is featured
}
else{
   no, not featured
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...