javascript - 如何处理带有隐藏元素的 .next() 函数

标签 javascript jquery html css

我正在制作一个带有箭头键功能的自定义下拉菜单,并被 :contains 过滤。 .

我似乎无法通过以下代码。发生的事情是我需要在当前悬停的 li 处开始选择,然后继续到下一个或上一个具有类 match 的 li。 .

我的以下代码正确启动,但即使它有 .next('.match')它不会通过 <li>要么没有类(match)要么是(隐藏的)

next()隐藏元素的函数中断?

J查询代码

 $('.dropdown_shell.opened li.match.hovered')
     .next('.match')
     .addClass('hovered')
     .siblings()
     .removeClass('hovered');

HTML

<ul class="scroll">
     <li class="selected default match">None</li>
     <li class="" style="display: none;">For Sale</li>
     <li class="match">For Rent</li>
     <li class="" style="display: none;">For Lease</li>
     <li class="match hovered">Sale or Lease</li>
     <li class="match">New Listing</li>
     <li class="match">Open House</li>
</ul>

最佳答案

您的 next() 函数没有按照您的预期运行。它查看下一个元素,匹配给定的选择器。否则它返回一个空的 jQuery 对象。

相反,您需要 nextAll() ,它查看所有 future 的 sibling ,然后使用 first() 方法(或 :first)选择器来匹配第一个。

你可以在这里看到这个工作; http://jsfiddle.net/DH3hG/

回答你关于 next() 是否考虑隐藏元素的问题; 是的是的。考虑插入到 DOM 中的任何内容。

关于javascript - 如何处理带有隐藏元素的 .next() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18420109/

相关文章:

html - 支持所有设备和浏览器的移动导航 : but what's its name?

javascript - 如何使用显示全部/无按钮使其工作?

'POST' 数据到 Django 服务器后,Javascript 获取 api 没有得到响应

php - ChartJS 和 Ajax 调用

javascript - 使用ajax动态分割滚动条

javascript - 使用 JS 或 Jquery 替换特定 DIV 中嵌套键的所有实例

javascript - 如何从 html 表单执行 php 查询?

Javascript 获取变量问题

javascript - ID为 'org.grails.grails-plugin'的Gradle安装问题

javascript - 多个指令 > [flexSlider, slide] 要求嵌入