0

これが私の問題です。最新のブラウザーでは正常に動作する jquery がありますが、IE7 では動作しません。

< A > タグの 1 つをクリックすると、「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 は .children(".inner-course-details") の長さとして "0" を返します。

Chrome は「1」を返します

4

2 に答える 2

2

この問題は、これが有効な HTML ではない (ulタグにタグを含めることができないdiv) という事実が原因である可能性が高いため、IE7 はおそらくそれを DOM ツリーの一部とは見なしません。

修正するにdivは、タグの中に入れてli(またはli代わりにタグを使用して) .toggle()、.li

于 2012-03-20T00:00:53.260 に答える
1

正確な理由はわかりませんが、に変更するchildrenfind機能します

$("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/

于 2012-03-20T00:05:01.630 に答える