我对 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/