Javascript jQuery方法找不到选择器

Javascript jQuery方法找不到选择器,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在编写一个简单的jQuery函数,从html页面中选择一个选择器,并在按键(向上或向下)上添加一个CSS类 问题是它没有检测到添加类的选择器 HTML选择器嵌套在代码的深处 html body div.fixed-header div#main-nav.primary-nav.navbar div.navbar-inner div.primary-nav-right-con

我正在编写一个简单的jQuery函数,从html页面中选择一个选择器,并在按键(向上或向下)上添加一个CSS类

问题是它没有检测到添加类的选择器

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
我正在尝试检测jquery中的选择器ul.search-entry

我现在在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{
  }
});

我绞尽脑汁已经太久了,我知道我错过了一些非常小的东西。有什么想法吗?

只将
选择器设置为选择器字符串,而不是结果集合,并在需要时调用
jQuery
进行搜索

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就绪处理程序中
如果(已选择)
已选择
从未给定值。是否需要
选择器
?@tymeJV当
如果(已选择)
为true时,
已选择的
已经有一个值,因此不需要再给它一个值。“问题是它没有检测到添加类的选择器。”您是如何发现没有选择任何元素的?你看过报纸了吗?为了在文档准备好被操作时立即运行代码,jQuery有一条语句称为“您的问题可能暴露了误解”
ul.search条目
是一个选择器,
$(“ul.search条目”)
是与选择器匹配的元素的jQuery集合。是!这就成功了。我不敢相信是这个傻瓜干的。谢谢你,菲利克斯。