下一个 jquery 在 chrome 中返回 []
Posted
技术标签:
【中文标题】下一个 jquery 在 chrome 中返回 []【英文标题】:next jquery returns [] in chrome 【发布时间】:2013-05-23 18:40:36 【问题描述】:我真的不明白为什么会这样:
$('.myitem').next('.exampleClass').css('display','none');
给我
[]
(在 chrome 控制台中)和
$(".myitem").parent().css('display','none');
确实有效,并给了我 html 代码,并且实际上做了我想做的事
总的来说,[]
在 chome 中是什么意思? null
?
基本上我试图找到父 <li>
并隐藏它,然后找到下一个 <li>
并显示它。
【问题讨论】:
您很可能不了解 .next() 的工作原理。它只选择下一个元素(索引的元素是当前元素的索引+1),然后只在它与选择器匹配时才返回它。它不会递归地查看所有以下元素以寻找匹配项。[]
是一个空数组,在这种情况下意味着没有选择任何元素。
[]
是一个空数组。这意味着.next()
没有找到任何匹配项。这真的只发生在 Chrome 中,还是你只在 Chrome 中尝试过?显示您的 HTML,我们可以帮助您修复代码。
正如 Barmar 所说的 []
意味着什么也没找到。 .next 寻找直接的下一个兄弟。如果您想要包含该类的第一个同级,请使用 .nextAll,例如 $('.myitem').nextAll('.exampleClass').first().css('display','none');
。 .nextAll 遍历所有下一个兄弟姐妹,而不仅仅是第一个,并且 .first 将在第一个匹配的地方停止它
那么我如何搜索下一个列表项?我正在最接近找到我所在的那个……但我真的不明白如何找到下一个要显示的?
【参考方案1】:
[] 是一个空数组。许多 jQuery 函数 ruturn 一个 jQuery 对象数组。您的 jQuery 函数没有找到任何与“.exampleClass”匹配的内容,因此它返回了一个空数组。
【讨论】:
【参考方案2】:如果下一个兄弟不是.exampleClass,它可以返回空。
我会使用这样的东西:
$('.myitem').nextAll('.exampleClass').first().css('display','none');
【讨论】:
以上是关于下一个 jquery 在 chrome 中返回 []的主要内容,如果未能解决你的问题,请参考以下文章