jquery count:可见在IE7中不起作用

时间:2011-08-10 18:43:51

标签: javascript jquery hidden visible

我使用jQuery创建了一个工具,它将显示某些表行,具体取决于是否选中了某些复选框。我试图让文字显示“例如需要3个海报”。我正在使用下面的代码。在IE7中,它被破坏而不是显示< tr class =“hidden”> 可见,它只显示< tr class =“hidden”>。这段代码有什么问题吗?

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

1 个答案:

答案 0 :(得分:2)

这似乎是一个已经修复了大约2年的旧bug。您可以升级您的jquery版本或将您的选择器更改为:

:not(:hidden)

这是我发现人们声称可行的解决方法。

(未经测试,因为我没有IE7)