这是我的问题,我有一个jquery在现代浏览器中运行良好,但在IE7中不起作用。
这个想法是当你点击<标签,名为"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"作为.childs(".internal course details")的长度
Chrome返回"1"
问题可能是因为这不是有效的HTML(ul
标记不能包含div
标记),所以IE7可能不认为它是DOM树的一部分。
要修复此问题,请尝试将div
放在li
标记中(或仅使用li
标记),然后将.toggle()
放在li
中。
我不知道确切的原因,但如果您将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;
});
还有小提琴http://jsfiddle.net/6heVt/2/