这个用于切换div的JQuery代码在IE7中不起作用,但可以在其他浏览器中使用

时间:2012-03-19 23:58:15

标签: internet-explorer-7 jquery jquery-chaining

这是我的问题,我有一块jquery在现代浏览器中运行良好,但在IE7中不起作用。

这个想法是当你点击其中一个< A>标签,名为“innerdetails”的div将打开。

这是我的HTML:

<ul class="table">
<li><a href="#">CLICK HERE</a></li>
<li><a href="#">Techniques</a> </li>
<li >3</li>
<div class="innerdetails">
   Technical services, including MARC.
</div>
</ul>

这是令人讨厌的Jquery代码。

$(document).ready(function() {
    $("ul.table li a").click(function() {
    $(this).parent("li").parent("ul").children(".innerdetails").toggle();
    alert ( $(this).parent("li").parent("ul").children(".innerdetails").length )
    return false;
    });
});

有趣的是,在警报中,IE7返回“0”作为.children的长度(“。inner-course-details”)

Chrome返回“1”

2 个答案:

答案 0 :(得分:2)

问题可能是因为这不是有效的HTML(ul标记不能包含div标记),所以IE7可能不认为它是DOM树。

要解决此问题,请尝试将div置于li标记内(或仅使用li标记),然后.toggle() li {{1}}

答案 1 :(得分:1)

我不确切知道原因,但是如果您将children更改为find则可行

$("ul.table li a").click(function() {
    $(this).parent("li").parent("ul").find(".innerdetails").toggle();
    alert ( $(this).parent("li").parent("ul").find(".innerdetails").length )
    return false;
});

jsfiddle http://jsfiddle.net/6heVt/2/