我正在尝试在特定元素节点上运行focus()方法,具体取决于是否按下向上箭头键或向下箭头键。我要关注的列表项是我正在侦听的同级节点的子级,因为我希望焦点从搜索框(输入标签)转到同级节点的子级节点。
当按下向下箭头键时,我将firstChild属性放在事件侦听器中的searchSuggest框上,但是,这将在每次按下第一个子项或列表项时运行focus()方法,而不是每次按下列表中的下一个兄弟姐妹。
const d = document,
searchBox = d.getElementById("PFsearchBox"),
searchSuggest = d.getElementById("PFsearchSuggest")
searchBox.addEventListener("keydown", e => {
// up arrow
if (e.which === 38) {
e.preventDefault();
// select the last item in the suggestion list
searchSuggest.children[searchSuggest.children.length - 1].focus()
}
// down arrow
if (e.which === 40) {
e.preventDefault();
searchSuggest.firstChild.focus()
}
});
我希望当按下向下箭头键时,焦点将从输入框移到searchSuggest节点中的第一个子列表项,然后每次按下向下箭头键都按顺序向下列表,反之亦然当按下向上箭头键时。