我正在为我的网站中的键盘导航创建一个“漫游标签索引”,我正在努力获取当前"label“元素的前一个元素。
示例代码:
$('section').focus(function(){
var elements = $(this).find('label');
var i = 0;
elements[i].focus();
....
});
然后我有一个keydown e.which开关,可以为不同的箭头键修改索引。
但是当用户按空格键时,我无法获得相关的输入,这是输入的前一个元素,因为它是一个数组。
我怎样才能做到等同于:
elements[5].prev();
并获取第五个标签的前一个元素
发布于 2018-09-06 03:22:49
您遇到的问题是,在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
发布于 2018-09-06 03:24:36
使用elements.eq(5)
而不是elements[5]
来检索正确的jQuery元素,而不是原始的DOM元素。
https://stackoverflow.com/questions/52192071
复制相似问题