这是我的问题,我有一块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”
答案 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/