通过选择带有类的元素来获取下一个元素
Get the next element by selecting element with a class
我有一个实时搜索,列表元素被给定一个hover
类,然后我试图在按下向下箭头并将hover
类添加到该元素后获得悬停类后的下一个li元素。以下是我的文件:
if(e.keyCode == 40){
var current = results.find('li.hover');
current.removeClass();
current.parent().next('li').addClass('hover');
return false;
}
它只是不会在下一个元素中添加一个类。它可以很好地找到当前的类。不知道我做错了什么。很感激!
使用e.which
,而不是e.keyCode
。jQuery规范属性(IE不支持e.keyCode
):
if(e.which == 40){
至于你的选择器,试试这个:
results.find('li.hover').removeClass().next('li').addClass('hover')
.next()
查找与选择器匹配的下一个兄弟,因此不需要调用.parent()
。
您正在寻找LI。悬停,然后转到父(即UL),然后选择UL之后的下一个LI。
改变:
current.parent().next('li').addClass('hover');
:
current.next('li').addClass('hover');
current.parent().next('li')
可能没有做你想做的事。
由于current
是li
标签的jQuery对象,我假设它的父是ul
标签。如果是这种情况,那么next('li')
正在寻找ul
标签的第一个兄弟,这是li
标签,它永远不会找到。
我不清楚你想添加悬停类到哪个li
,所以我不确定到底该推荐什么来做你想做的
难道你不想这么做吗?
if(e.keyCode == 40){
var current = results.find('li.hover');
current.removeClass();
current.next('li').addClass('hover');
return false;
}
没有parent() ?
current。nextSibling应该引用列表中的下一个li元素
相关文章:
- React - 从 DOM 元素获取组件以进行调试
- 如何使用 JQuery 从相对元素获取 html 文本
- 从同一域上的 iframe 中的元素获取值
- 使用本机 Javascript 从 DOM 元素获取选择器字符串
- 使用jquery从另一个元素获取使用id的输入的id
- 如何从角度元素获取编译的节点值
- 如何为不同的元素获取不同的父类
- 从 jQuery 中的子元素获取父 tr 元素
- 当浮点部分为空时,从 JQuery 中的输入元素获取数字值不起作用
- 从 XML 元素获取文本
- 从音频元素获取音频样本
- 从所选元素 html 上方的元素获取属性值
- 使用 jQuery.data 从 dom 元素获取布尔值
- 如何通过jquery从某个元素获取部分文本
- 从输入元素获取表单和表单数据对象
- 从动态元素获取挖空视图的大小
- 从中继器循环中显示的子自定义元素获取正确的上下文.奥蕾莉亚
- 如何使用 JavaScript 或 JQuery 从输入类型=文件 html 元素获取文件名
- 从父元素获取 ID 并将它们放在数组中
- 尝试从选项元素获取 HTML