下一个 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 中返回 []的主要内容,如果未能解决你的问题,请参考以下文章

在chrome问题中使用jquery的图像高度

jQuery 开关类未在 Chrome 中正确激活

Chrome 中的 jQuery 返回“块”而不是“内联”

jQuery animate left decrement var value在chrome上返回0,即

从 IE 中的值读取负数时,jquery 返回 0

Chrome的jQuery位置问题