jquery - 如何在jquery中选择所选元素(网格样式)下方的元素(div)

标签 jquery dom jquery-selectors keyboard-navigation

选择当前所选元素下方的 div。

嗨!

好的,假设我们有以下 HTML 代码:

<div id="container">
   <div class="an-element selected"></div>
   <div class="another-one"></div>
   <div class="annnddd-onehere"></div>
   <div class="i-think"></div>
   <div class="you-got"></div>
   <div class="the-idea"></div>
</div>

每个div的宽度是固定的,但窗口大小不是固定的。在大屏幕上,所有 6 个元素都显示在同一行。但在较小的屏幕上,第一行包含 4 个元素,第二行包含 2 个元素。

现在假设第一个元素具有“selected”类。如何将“选定”类添加到该类下面的元素(如果 div 确实存在)? (显然,当前的.selected将被删除)

这适用于使用箭头的键盘导航系统。

一如既往地感谢您的宝贵时间;)

编辑

如果选择了第二个元素,并且用户按下向下箭头,则第六个元素将受到影响。 如果选择了第三个元素,并且用户按向下箭头,则不会发生任何事情,因为该元素下没有 div。

我在这里发现了一些显示“概念”的动画: http://push-a-button.com/products/emucenter/

最佳答案

这可以使用 elementFromPoint 方法来完成。这个想法是测试当前选定的元素位于哪个元素下:

// testPos is the position under/over the selected element
var under = document.elementFromPoint(testPos.left, testPos.top);

// If the element has class block then we can highlight it
if (under && under.className == 'block') {
    selected[0].className = 'block';
    under.className = 'block selected';
}

完整演示:http://jsfiddle.net/PMeNJ/1/

关于jquery - 如何在jquery中选择所选元素(网格样式)下方的元素(div),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16413084/

相关文章:

javascript - 缩短 jQuery 命令

Javascript 命令插入 HTML

javascript - 外部 JavaScript 可以访问不同文件中的 DOM 元素吗?

javascript - 从 $ ('input[type="文本中否定一个文本框"]')

php - JQuery 数组和输入复选框+隐藏

javascript - 区分每条消息的 'reply' 按钮的好方法是什么?

javascript - Jquery 循环浏览多个图像并一次显示 3 个图像

javascript - 管理对无状态组件的关注 - React

javascript - iFrame javascript 上的 MutationObserver

jquery - 如何在 jQuery 中选择特定元素