Я пишу простую функцию jQuery для выбора селектора с html-страницы, а при нажатии клавиши (вверх или вниз) следует добавить к нему класс CSS.jQuery метод не находит селектор
Проблема в том, что он не определяет селектор для добавления класса.
Редактор HTML вложен глубоко в код.
html
body
div.fixed-header
div#main-nav.primary-nav.navbar
div.navbar-inner
div.primary-nav-right-content
ul.nav
li#global-search
div.search-results
ul.search-dropdown
ul.search-entry
Я пытаюсь обнаружить селектор ul.search-entry в моем jquery.
Что я имею прямо сейчас в своем javascript.
var selector = $('ul.search-entry');
var selected;
$(window).keydown(function(e){
if(e.which === 40){
if(selected){
selected.removeClass('selected');
next = selected.next();
if(next.length > 0){
selected = next.addClass('selected');
}else{
selected = selector.eq(0).addClass('selected');
}
}else{
selected = selector.eq(0).addClass('selected');
}
}else if(e.which === 38){
if(selected){
selected.removeClass('selected');
next = selected.prev();
if(next.length > 0){
selected = next.addClass('selected');
}else{
selected = selector.last().addClass('selected');
}
}else{
selected = selector.last().addClass('selected');
}
}
else{
}
});
Я слишком долго ломаю голову, и я знаю, что у меня что-то действительно малое. Есть предположения?
убедитесь, что код находится в готовом обработчике dom –
'if (selected)', 'selected' никогда не получает значения. Вы хотите 'селектор'? – tymeJV
@tymeJV Когда 'if (selected)' is true, 'selected' уже имеет значение, поэтому ему больше не нужно давать один. – Barmar