2010-09-20 41 views
1

jQuery的:visible選擇似乎並沒有在包括已經被隱藏的hide()紅素的意義在Internet Explorer 8 TR元素的工作。下面是測試情況:爲什麼jQuery的:可見選擇包括對IE8隱藏的TR?

<html> 
    <head> 
    <script language="JavaScript" src="jquery-1.3.2.min.js"></script> 
    <script language="JavaScript"> 
$(document).ready(function() { 
       $('#trb').hide(); 
       $('#trcount').html($('tr:visible').length); 
       $('#pb').hide(); 
       $('#pcount').html($('p.item:visible').length); 
}); 
    </script> 
    </head> 
    <body> 
    <table> 
     <tr><td>A</td></tr> 
     <tr id="trb"><td>B</td></tr> 
     <tr><td>C</td></tr> 
    </table> 
    <p><span id="trcount">?</span> rows are visible.</p> 

    <p>Using paragraphs:</p> 
    <p class="item">A</p> 
    <p class="item" id="pb">B</p> 
    <p class="item">C</p> 

    <p><span id="pcount">?</span> paragraphs are visible.</p> 
    </body> 
</html> 

在Chrome,它會導致「2行是可見的」和「2段是可見的,」如預期。但是,在Internet Explorer 8上,結果是「3行可見」和「2段」可見。

爲什麼?什麼是最好的解決方法? (當我隱藏一件物品時,我可以想象它會添加一個CSS類。)

+0

我不能再現這個:我的jsFiddle inf IE8 ==> http://jsfiddle.net/Cc3eM/ ----------我的截圖==> http://i.imgur.com/ 1xYYW.png – 2010-09-20 21:00:17

+0

@Peter Ajtai - 操作是使用1.3.2 - 雖然我仍然不能再現 – redsquare 2010-09-20 21:03:42

+0

我爲此創建了一個jsfiddle:http://jsfiddle.net/eAMsP/你是對的IE8返回不同的長度。 – scunliffe 2010-09-20 21:05:50

回答