检测jquery/javascript中的最后一个列表项
我在网站上有一组选项卡(主选项卡),每个选项卡都有另一组选项卡(子选项卡)。 我想使用键盘上的箭头键来导航选项卡,而不是鼠标 这些选项卡只是HTML列表项检测jquery/javascript中的最后一个列表项,javascript,jquery,arrow-keys,Javascript,Jquery,Arrow Keys,我在网站上有一组选项卡(主选项卡),每个选项卡都有另一组选项卡(子选项卡)。 我想使用键盘上的箭头键来导航选项卡,而不是鼠标 这些选项卡只是HTML列表项 $('ul#nav > li:last').css('border', '1px solid red'); 当我用箭头键到达最后一个子选项卡时,我希望它返回到下一个主选项卡,这样它就可以显示自己的子选项卡,并在其中进行导航 我的问题是,在jQuery/javascript中,当我使用箭头键(即右箭头键)到达最后一个列表项(选项卡)时,
$('ul#nav > li:last').css('border', '1px solid red');
当我用箭头键到达最后一个子选项卡时,我希望它返回到下一个主选项卡,这样它就可以显示自己的子选项卡,并在其中进行导航
我的问题是,在jQuery/javascript中,当我使用箭头键(即右箭头键)到达最后一个列表项(选项卡)时,如何检测
非常感谢您可以使用jQuery中的或选择器。根据
标记的嵌套方式,您可能还必须同时使用该函数
例如,假设您有以下标记:
<ul id="nav">
<li>List item</li>
<li>List item with sub items
<ul>
<li>Sub list item</li>
</ul>
</li>
</ul>
这将选择向下遍历DOM的最后一个
。在这种情况下,它是带有文本“子列表项”的
这将选择作为其父项最后一个子项的任何
标记
$('ul#nav li:last-child').css('border', '1px solid red');
我猜是这样的。您可以使用
.length
来确定jQuery选择器是否找到了任何内容:
var nextSubTab = $(currentSubTab).next("li");
if (nextSubTab.length == 0) {
// oops, end of this tab, switch to next tab
}
var maintabs = $('.maintab'),
active_maintab_eq = 0,
active_subtab_number = 1;
$(document).keyup( function(e){
if (e.which == 39) {
// right arrow key pressed
if ( active_subtab_number == maintabs.eq(active_maintab_eq).find('li').length ) {
// go to next main-tab
// and reset active sub-tab counter
++active_maintab_eq;
active_subtab_number = 1;
} else {
++active_subtab_number;
}
}
});
var nextSubTab = $(currentSubTab).next("li");
if (nextSubTab.length == 0) {
// oops, end of this tab, switch to next tab
}