Селектор jQuery с и и или

Может ли кто-нибудь помочь мне с синтаксисом того, что я пытаюсь здесь сделать?

jQuery('(div[data-positiontype="3"]) && (div[data-positiontitle*="test"] || div[data-positiondesc*='test'])')

В основном мне нужна возможность выбрать все элементы div, которые имеют определенный атрибут «тип позиции данных» и токен либо в атрибуте «заголовок данных», либо в атрибуте «дескамент позиции данных».


person Kyle    schedule 27.09.2012    source источник
comment
Но на самом деле вам нужно проверить, как работают селекторы   -  person zzzzBov    schedule 28.09.2012
comment
Селекторы jQuery в большинстве случаев идентичны селекторам css. Как бы вы сделали это в css?   -  person Kevin B    schedule 28.09.2012
comment
@zzzzBov В мою защиту .filter нигде не упоминается в документации по селекторам.   -  person Kyle    schedule 28.09.2012
comment
@Kyle, тогда вам следует просмотреть весь jQuery API. Если вы не знаете, какие инструменты у вас есть, как вы можете надеяться добиться чего-либо с их помощью?   -  person zzzzBov    schedule 28.09.2012


Ответы (2)


$('div[data-positiontype="3"]').filter('[data-positiontitle*="test"], [data-positiondesc*="test"]').

или прямое:

$('div[data-positiontype="3"][data-positiontitle*="test"], div[data-positiontype="3"][data-positiondesc*="test"]').
person zerkms    schedule 27.09.2012
comment
.filter() Удивительно! Как раз то, что я искал! - person Kyle; 28.09.2012

Вы складываете селекторы вместе, чтобы найти элементы, которые соответствуют обоим, и используете комбинатор , между селекторами:

jQuery('div[data-positiontype="3"][data-positiontitle*="test"],div[data-positiontype="3"][data-positiondesc*="test"]')
person Guffa    schedule 27.09.2012