Here is one way to do this without using identifiers or classes. A working working jsfiddle example is available here (first click on the results pane).
javascript:
var $currentDiv = $("#myContainer").children().first(); $currentDiv.css("background", "red"); $("html").keyup( function(keyEvent) { if (keyEvent.keyCode == 40 ) { var $nextDiv; if ($currentDiv.next().size() == 0) { $nextDiv = $("#myContainer").children().first(); } else { $nextDiv = $currentDiv.next(); } $currentDiv.css("background", ""); $nextDiv.css("background", "red"); console.log($nextDiv); console.log($currentDiv); $currentDiv = $nextDiv; } else if (keyEvent.keyCode == 38) { var $previousDiv; if ($currentDiv.prev().size() == 0) $previousDiv = $("#myContainer").children().last(); else { $previousDiv = $currentDiv.prev(); } $currentDiv.css("background", ""); $previousDiv.css("background", "red"); $currentDiv = $previousDiv; } });
html:
<div id="myContainer"> <div> Div 1 </div> <div> Div 2 </div> <div> Div 3 </div> <div> Div 4 </div> </div>
Adam prax
source share