Ответ 1
Вы хотите : not selector
$("a:not([rel=facebox],[href^=mailto])");
РЕДАКТИРОВАТЬ: я украл ваш ответ для правильности
Попытка собрать довольно сложный селектор jQuery здесь и иметь проблемы.
По сути, я пытаюсь захватить все якоря, что 1) не имеет "rel" из "facebox", и OR 2) не имеет "href", который начинается с "mailto".
Это то, что я пытался сделать:
$('a[rel!=facebox], a[href!^="mailto"]')
Небольшие вариации этого, похоже, не работают. Есть ли лучший способ обойти это?
Эти селекторы работают индивидуально, но не при сидении последовательно в одном и том же селекторе:
$('a:not([rel=facebox]), a:not([href^=mailto])')
Окончательное решение: У нас есть победитель!
$('a:not([rel=facebox],[href^=mailto])')
Вы хотите : not selector
$("a:not([rel=facebox],[href^=mailto])");
РЕДАКТИРОВАТЬ: я украл ваш ответ для правильности
Хорошо, мистер Джереми Рикеттс. ДЖЕКЕ испортил тебе голову. Вы пытаетесь связать логику селектора... вроде как методы цепей jQuery. Во втором селекторе (a[href!^="mailto"]
) вы пытаетесь сказать... НЕ что-то, что содержит этот атрибут. То, что вы говорите, это "Искать все вещи, которые не являются почтовыми", и "Искать все, что содержит mailto". Это похоже на светофильтры... если вы фильтруете красный свет... и бросаете фильтр с желтым светом сверху... вы не фильтруете оранжевый свет... вы просто отфильтровываете ВСЕ (извините за растяжку аналогии), Итак, что вы пытаетесь сделать, это использовать псевдоселектор: not.
Нравится это - $(a:not([href^=mailto:])).whateverJqueryMethodYouWant();
EDIT:
Ну, теперь, когда вы правильно задали вопрос... вы можете сделать это так: $(a:not([href^=mailto:] , [rel=facebox])).whateverJqueryFunctionYouWant();
Не должно быть:
$("a:not([rel='facebox'],[href^='mailto'])");