如何在具有索引的选择器上使用Jquery遍历方法?

时间:2018-09-05 19:20:11

标签: jquery

我正在网站上为键盘导航创建“滚动标签索引”,并且正在努力获取当前“标签”元素的上一个元素。

示例代码:

$('section').focus(function(){
  var elements = $(this).find('label');
  var i = 0;
  elements[i].focus();
  ....
});

然后我有一个keydown e。哪个开关可以修改不同箭头键等的索引...

但是当用户按下空格键时,我无法获得关联的输入,它是输入的前一个元素,因为它是一个数组。

我该怎么做:

elements[5].prev();

并获得第5个标签的上一个元素

2 个答案:

答案 0 :(得分:2)

您遇到的问题是,在jQuery对象上使用括号表示法会返回基本的Element对象,而不是jQuery对象。

要执行所需的操作,请使用eq()

$('section').focus(function(){
  var elements = $(this).find('label');
  var i = 0;
  var $el = elements.eq(i).focus();

  // ...

  var prevElement = elements.eq(5).prev();
});

您可以在文档中找到更多信息:http://api.jquery.com/eq

答案 1 :(得分:0)

使用elements.eq(5)而不是elements[5]来检索适当的jQuery元素而不是原始DOM元素。

Reference for eq