简单的 jquery $(this).next() 在 IE 中没有表现

Posted

技术标签:

【中文标题】简单的 jquery $(this).next() 在 IE 中没有表现【英文标题】:simple jquery $(this).next() not behaving in IE 【发布时间】:2011-09-28 22:20:38 【问题描述】:

我有这个标记

<h2>Title</h2>
<div class="info-content">
<p>some code in here too</p>
</div>

还有这个 jquery

(function($)  
    $(".info-content").hide(); 
    $("h2").click(function()
        $(this).next().slideToggle("normal");
    );
)(jQuery);

在除 IE6+ 之外的任何浏览器中,都会切换 .info 内容的打开和关闭。

任何想法为什么这在 IE 中不起作用?我假设它很简单,但我已经尝试了一段时间了。

任何帮助都会很棒,

谢谢。

【问题讨论】:

【参考方案1】:

next() 可能正在返回一个文本节点。

试试$(this).nextAll("p:first")

【讨论】:

准确! $(this).nextAll(".info-content") 工作得很好。非常感谢@SLaks【参考方案2】:

或者你可以这样做

$(this).find('info-content').slideToggle("normal);

【讨论】:

在这里挖掘一个相当老的问题,但这肯定会切换所有.info-content 元素? next 只捕获 DOM 中的以下元素(如果我没记错的话)。不过感谢您的回复!

以上是关于简单的 jquery $(this).next() 在 IE 中没有表现的主要内容,如果未能解决你的问题,请参考以下文章

Jquery .next(输入或文本区域)

jQuery“ $ variable”与javascript“ var” 简单变量声明的困惑

为啥我的带有“$(this).next”的 JavaScript/jQuery 脚本不起作用?

jquery next() 这个

jQuery next() 和 $(this)

jQuery next() 不能与 live() 一起使用