Сдвиг фокус с помощью клавиш со стрелками в JavaScript

Я хочу иметь возможность перемещаться по всем фокусируемым элементам на моей веб-странице с помощью клавиши со стрелкой. Поэтому, когда нажата клавиша «вниз», фокус должен сместиться на фокусируемый элемент под текущим сфокусированным элементом. Вы получаете представление о других клавишах со стрелками, когда нет фокусируемого элемента, на который нужно перейти, фокус должен остаться прежним.

Это то, что я получил так далеко:

$(document).keydown(function(e){    

if (e.keyCode == 37) { //left

   var offset = $("*:focus").offset();

   var allElements = $("#container").find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]');

   var arr = jQuery.makeArray(allElements);

   var topLeft = offset.left
   var minus = topLeft;
   var currentElement = $("*:focus");

   for(var i = 0; i < arr.length; i++)
   {

      if ( (arr[i].offset().left < offset.left)  // This doesn't work for some reason
        && ((offset.left - arr[i].offset().left) < minus))
      {
        currentElement = arr[i];
        minus = offset.left - arr[i].offset().left;
        topLeft = arr[i].offset().left;
      }


      currentElement.focus();
   }


   alert( "left pressed" );
   return false;
}

// Other Keys

});

Идея состояла в том, чтобы получить все элементы, способные фокусироваться, а затем выбрать тот, который подходит для стрелки, и сместить фокус.

Я не могу заставить этот код работать (он содержит ошибку), и я не совсем уверен, что он даже будет работать.

Спасибо заранее

[РЕДАКТИРОВАТЬ]: Я думаю, я был немного расплывчатым. Я не только хочу идти влево и вправо, но и вверх и вниз.

Ответы на вопрос(4)

Ваш ответ на вопрос