javascript - 如何选择列表中给定元素右侧和左侧显示的内联 block 元素?

标签 javascript jquery

我有一个无序列表( <ul> ),其中有许多 <li>元素。 <ul>元素的宽度为 100%,适合 1 到“n”个 <li>内联 block 元素彼此相邻,具体取决于浏览器窗口的大小。因此,列表包含 x 行,每行包含“n”个元素。

给定一个元素,使用 jQuery 我想选择同一行中的所有其他元素。我怎样才能做到这一点?

在此图中,我展示了 2 个具有不同浏览器窗口大小的案例。我想要选择的元素以绿色突出显示。 enter image description here

最佳答案

您必须识别给定的 <li>'s通过匹配位置来匹配同一行上的 sibling ,因为它们是相同的。

这是您可以使用的示例代码

var givenLi=$($('.ulnav li').get(6));
var sameRowLis=[];
givenLi.siblings().each(function(){
    if(givenLi.position().top === $(this).position().top){
        sameRowLis.push($(this)[0]);
    }
});
console.log($(sameRowLis));

sameRowLis 会给你你所期望的,但是这不会包括最初给定的 <li>

如果您希望它包含给定的 <li>然后更改每个选择器如下 'givenLi.parent().children().each...'

关于javascript - 如何选择列表中给定元素右侧和左侧显示的内联 block 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32310998/

相关文章:

javascript运行时错误对象不支持属性或方法 'tabs'

javascript - 无法获取我创建的对象的属性。看起来 MongoDB 的 mongoose 有问题

javascript - 选择要添加到数组的 <li>

jquery - 这两种查找表行的 jQuery 方法哪一个更快?

javascript - 为选定的单选按钮 div 添加类名称

javascript - 为什么这个 jQuery 选择器只返回 1 个元素?

javascript - 使用主干设备 rails 进行身份验证

javascript - 如何优化 Canvas 上的动画? HTML 5

javascript - 如何在 Sails 中使用 mocha 测试 Controller ?

javascript - 使用图像创建 Canvas 元素并附加到父级