4

我有以下标记

<div id="search-query-autocomplete">
  <ul id="autocomplete-results">
    <li class="auto-li">blue</li>
  </ul>
</div>

并希望在用户按下时向第一个自动 li 添加一个类。

我有以下 javascript:

document.onkeydown = checkKey;
 function checkKey(e){
 e = e || window.event;

 if(e.keyCode=='40')
 {
   $('#autocomplete-results li:nth-child(0)').text('not working');
   console.log('here is 40'); //code
 }
}

但它不起作用 - 我需要改变什么?

提前谢谢

4

3 回答 3

6

:nth-child伪类从索引 1 而不是 0开始

第 n 个子伪类实际上不会帮助选择第一个.auto-li,您可以使用:first, .eq(0):eq(0)将选择过滤到第一个.auto-li

$('#autocomplete-results li.auto-li').eq(0).text('working');
于 2012-10-30T05:58:26.073 回答
2

如果你想选择第一个auto-li,你的选择器实际上应该是:

$('#autocomplete-results li.auto-li:first')
于 2012-10-30T06:00:53.913 回答
1
document.onkeydown = checkKey;
 function checkKey(e){
 e = e || window.event;



 if(e.keyCode===40)
 {    
     $('#autocomplete-results li:nth-child(1)').text('not working');
   alert('here is 40'); //code
 }
}

第 N 个子索引从索引 1 开始,而不是从标准列表索引 0 开始。

并且不要将 =='40' 与 === 40 进行比较,因此没有不必要的类型转换(但这与您的代码的正确性无关)。

于 2012-10-30T06:16:04.850 回答