В JQuery Я пытаюсь выполнить следующиеНесколько шаблонов поиска (равно плюс не равно)
- Найти все ссылки на странице
- Если HREF свойство начинается с «#»
- И в ID значение не 'mobileMenu'
Это отлично работает:
$("a[href^='#']").each(function() { // links where HREF starts with #
if ($(this).attr('id') != 'mobileMenu') { // id not equal to mobileMenu
$(this).click(function() {
// logic
})
}
});
Но когда я пытаюсь объединить его в более емкое поиске, терпит неудачу (ссылка mobileMenu еще втягивается в массив):
$("a[href^='#'], a[id!='mobileMenu']").each(function() {
}
Что я делаю неправильно, пожалуйста?
+1. ': not' более эффективен, чем' .not() 'http://jsperf.com/jquery-css3-not-vs-not – Terry
@Terry, в документе говорится:« Лучше использовать .not() over $ (' x: not (y) ')' –
Селекторы CSS3, как правило, быстрее. [Проверьте эту ссылку] (http://jsperf.com/jquery-css3-not-vs-not), проверьте его в своем браузере. У вас есть ответ. jQuery doc рекомендует '.not()' просто потому, что он [делает код более читаемым] (http://stackoverflow.com/a/8845863/395910) вместо объединения псевдоселекторов вместе. – Terry