我正在网站上为键盘导航创建“滚动标签索引”,并且正在努力获取当前“标签”元素的上一个元素。
示例代码:
$('section').focus(function(){
var elements = $(this).find('label');
var i = 0;
elements[i].focus();
....
});
然后我有一个keydown e。哪个开关可以修改不同箭头键等的索引...
但是当用户按下空格键时,我无法获得关联的输入,它是输入的前一个元素,因为它是一个数组。
我该怎么做:
elements[5].prev();
并获得第5个标签的上一个元素
答案 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元素。