JSFiddle - React, Tailwind, and code Playground
HTML
<div id="screen">
<input id='mySearch' onkeyup='searchPokemon()' type='text' autocomplete="off">
<table id="pokemons-list">
<thead>
<tr>
<th>NO</th>
<th>Nom</th>
</tr>
</thead>
<tbody>
<!--In your case this is auto-generated-->
<tr>
<td>1</td><td>Name1</td>
</tr>
<tr>
<td>2</td><td>Name2</td>
</tr>
<tr>
<td>3</td><td>Name3</td>
</tr>
<tr>
<td>4</td><td>Name4</td>
</tr>
<tr>
<td>5</td><td>Name5</td>
</tr>
</tbody>
</table>
</div>
CSS
#screen {
position: relative;
z-index: 110;
background-color: #fff;
width: 255px;
height: 70px;
border-radius: 3px;
border-style: solid;
border-color: #494949;
user-select: none;
font-family: Zig;
color: black;
font-size: 12px;
overflow-y: hidden;
}
#pokemons-list {
margin-top: 3px;
border-spacing: 0px;
align-content: center;
position: absolute;
width: 100%;
}
th {
text-align: left;
padding-left: 20px;
}
td {
padding-right:15px;
padding-left: 15px;
justify-content: center;
cursor: pointer;
}
#mySearch {
border: 3px solid black;
font-family: Zig;
font-size: 12px;
position: fixed;
overflow: hidden;
}
JavaScript
var rows = document.getElementById("pokemons-list").children[1].children;
var selectedRow = 0;
document.body.onkeydown = function(e){
/*for (var tr[i] of table) {
rows--;
}*/
//Clear out old row's color
rows[selectedRow].style.backgroundColor = "#FFFFFF";
//Calculate new row
if(e.keyCode == 38){
selectedRow--;
} else if(e.keyCode == 40){
selectedRow++;
} else if(e.keyCode == 13){
Pokemon_ID = selectedRow + 1;
alert('Pokemon_ID = ' + Pokemon_ID);
}
if(selectedRow >= rows.length){
selectedRow = 0;
} else if(selectedRow < 0){
selectedRow = rows.length-1;
}
//Set new row's color
rows[selectedRow].scrollIntoView();
rows[selectedRow].style.backgroundColor = "dodgerblue";
};