2011-08-10 25 views
1

我已經創建了一個工具使用jQuery,將顯示某些錶行取決於如果某些複選框被選中。例如,我想要顯示「需要3張海報」的文字。我正在使用下面的代碼。在IE7中,它被打破,而不是顯示< tr class =「hidden」>可見的數量,它只是顯示總數< tr class =「hidden」>。這段代碼有什麼問題嗎?jQuery的計數:可見不起作用的IE7

$(".hidden").hide(); 

function countChecked() { 
     var n = $("tr.hidden:visible").length; 
     $("#numberrequired").text(n + (n <= 1 ? " Poster" : " Posters") + (n <= 1 ? "is" : " are") + " required:"); 
     //Error message if no checkboxes are selected 
     if ($('input:checkbox:checked').length < 1) { 
      $("#numberrequired").html("<span class='required_msg'>Please select at least one checkbox.</span>"); 
      $('#results0').hide(); 
      //boxes[0].focus(); 
      return false; 
     } 
    } 

<h2 id="numberrequired"></h2> 

這裏是一對夫婦行的例子:

<tr id="results1" class="hidden"> 
    <td>Text 1</td> 
    <td>Text 2</td> 
    <td>Text 3</td> 
</tr> 

<tr id="results2" class="hidden"> 
    <td>Text 1</td> 
    <td>Text 2</td> 
    <td>Text 3</td> 
</tr> 

<tr id="results3" class="hidden"> 
    <td>Text 1</td> 
    <td>Text 2</td> 
    <td>Text 3</td> 
</tr> 

回答

2

這似乎是一個老的bug已被固定爲2年左右。您可以升級您的jquery版本或將您的選擇器更改爲:

:not(:hidden) 

這是我發現人們聲稱會工作的解決方法。 。

(未經測試,因爲我沒有IE7)

+0

這仍然不起作用 - >變種N = $( 「tr.hidden:沒有(:隱藏)」)的長度;我也使用最新版本的jQuery – Dawn

+0

看來我使用的是1.6而不是1.6.2。我的錯誤! :不(:隱藏)確實工作。謝謝! – Dawn

+0

哇,所以它沒有在1.6的工作,但工作在1.62?這很奇怪。我發現的錯誤報告是針對v1.3.2的。我想它在1.6中重新引入,然後再次修復。很高興它的工作。 –