4

次のマークアップがあります

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

ユーザーがキーを押したときに最初の auto-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
 }
}

しかし、それは機能していません - 何を変更する必要がありますか?

thx事前に

4

3 に答える 3

6

:nth-child疑似クラスは 0 ではなくインデックス 1 から始まります

n 番目の子疑似クラスは、実際には最初の を選択するのに役立ちません。.eq(0).auto-liを使用するか:first、選択を最初の .: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番目の子のインデックスは、標準のリストインデックス0ではなく、インデックス1で始まります。

また、== '40' buth with === 40との比較は行わないでください。したがって、不必要な型変換はありません(ただし、コードの修正とは関係ありません)。

于 2012-10-30T06:16:04.850 に答える