jquery - 如何使用jquery next()按类选择下一个div

标签 jquery

我对 jquery 相当陌生,并且正在努力解决一些应该相当简单的事情。我想从类为“MenuItemSelected”的 div 中选择上一个和下一个类为“MenuItem”的 div。

HTML

<div id="MenuContainer" class="MenuContainer">
    <div id="MainMenu" class="MainMenu">
        <div class="MenuItem">
            <div class="MenuItemText">Menu Item #1</div>
            <div class="MenuItemImage">images/test1.jpg</div>
        </div>    
        <div class="MenuDividerContainer">
            <div class="MenuDivider"></div>
        </div>
        <div class="MenuItem MenuItemSelected">
            <div class="MenuItemText">Menu Item #2</div>
            <div class="MenuItemImage">images/test2.jpg</div>
        </div>
        <div class="MenuDividerContainer">
            <div class="MenuDivider"></div>
        </div>
        <div class="MenuItem">
            <div class="MenuItemText">Menu Item #3</div>
            <div class="MenuItemImage">images/test3.jpg</div>
        </div>
    </div><!--/ .MainMenu -->
</div><!--/ .MenuContainer -->

这是我认为应该可以工作的 next 的 jquery。

$('div.MenuItemSelected').next('.MenuItem');

我也尝试过

$('div.MenuItemSelected').nextAll('.MenuItem');

我唯一能上类的是

$('div.MenuItemSelected').next().next();

这看起来很做作,有什么想法吗?

最佳答案

你尝试过吗:

$('div.MenuItemSelected').nextAll('.MenuItem:first');

我认为您面临的问题是 next 返回下一个同级,而 nextAll 返回与您的选择器匹配的所有后续同级的集合。应用:first nextAll 过滤器的选择器应该会让事情变得正确。

我想指出,如果您的标记结构是一致的(因此它始终保证有效),那么您当前的解决方案可能(基准,基准,基准)很可能是更快的方法:

$('div.MenuItemSelected').next().next();

关于jquery - 如何使用jquery next()按类选择下一个div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1743454/

相关文章:

c# - JQuery MVC3 内联 Jquery 代码

javascript - 使用jquery获取 anchor 标签的数据值

javascript - 从 for 循环 javascript 设置多个超时

javascript - Bootstrap 选择菜单 - 添加新选项

javascript - jquery onclick 展开 div 并更改 span 内的文本

javascript - 如何每次将页面向上移动到一个div

jquery - 实时 'required fields',输入内有标签

javascript - 如何让我的 JQuery 作用于我的按钮而不是输入元素

Jquery将内容加载到div中

javascript - 在 Internet Explorer 9 中禁用 F5