Ответ 1
Попробуйте следующее:
$(".test:not([multiple])").css('border','solid 1px red');
Изменить: Как упоминает Рейгель, вы можете получить тот же набор результатов с лучшей производительностью, если вы избежите псевдоселектора jQuery:
$(".test").not([multiple]).css('border','solid 1px red');
Изменить 2: Как вы можете сказать из комментариев, некоторые быстрые тесты показывают, что, по крайней мере для некоторых из нас, второй вариант на самом деле медленнее. Копаем дальше, согласно css3.info, встроенная поддержка селектора :not
CSS3 более распространена, чем я думал. Вероятно, это имеет большое значение (извините IE7), предполагая, что jQuery использует собственный селектор, когда он доступен.
Изменить 3: Далее благодаря @nickf, который запускал эти тесты в IE8 и не обнаружил существенных различий между ними. В свете всей этой двусмысленности было бы разумно протестировать в вашем целевом браузере, если jseu-selectors jQuery или :not
/.not
в частности, попадают в горячую точку кода, которая оказывает существенное влияние на производительность (и если вы имеют контролируемую целевую среду браузера).
Но если ваша цель - все браузеры, похоже, лучший совет - использовать то, что лучше всего подходит вашему коду, и избегать преждевременной оптимизации.