2011-08-10 10 views
1

jQueryを使用して特定のチェックボックスが選択されているかどうかによって特定のテーブル行が表示されるツールを作成しました。私は、例えば「3枚のポスターが必要です」と表示されるテキストを作成しようとしています。私は以下のコードを使用しています。 IE7では、それは壊れており、が表示され、と表示される< tr class = "hidden">の代わりに、< tr class = "hidden">の合計数を示しています。このコードに何か問題はありますか?ここでjquery count:IE7でvisibleが動作しない

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

これは、約2年間のために固定されている古いバグのように見えます。あなたはjqueryののバージョンをアップグレードするか、これにあなたのセレクタを変更することができます:

:not(:hidden) 

これは私が仕事と主張し人を発見した回避策があります。

+0

(私はIE7を持っていないとしてテストされていない)これはまだ動作しません - >変数のn = $( "tr.hidden:ありません(:隠された)")の長さ;。私もjQueryの最新バージョンを使用しています – Dawn

+0

1.6.2ではなく1.6.2を使用していたようです。私の部分でエラー! :not(:hidden)は本当にうまくいきます。ありがとうございました! – Dawn

+0

うわー、それは1.6で動作しませんでしたが、1.62で働いたのですか?それはかなり奇妙です。私が見つけたバグ報告はv1.3.2のものでした。私はそれが1.6で再導入されたと思うし、再び修正されました。それがうれしかった。 –

関連する問題