【问题标题】:jquery count :visible doesn't work in IE7jquery 计数:可见在 IE7 中不起作用
【发布时间】:2011-08-10 18:43:50
【问题描述】:

我使用 jQuery 创建了一个工具,该工具将根据是否选中某些复选框来显示某些表格行。例如,我试图让文本显示“需要 3 张海报”。我正在使用下面的代码。在 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>

【问题讨论】:

    标签: javascript jquery hidden visible


    【解决方案1】:

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

    :not(:hidden)
    

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

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

    【讨论】:

    • 这仍然不起作用 --> var n = $("tr.hidden:not(:hidden)").length;我也在使用最新版本的 jQuery
    • 看来我使用的是 1.6 而不是 1.6.2。我的错误! :not(:hidden) 确实有效。谢谢!
    • 哇,所以它在 1.6 中不起作用但在 1.62 中起作用?这很奇怪。我发现的错误报告是针对 v1.3.2 的。我猜它在 1.6 中重新引入,然后再次修复。很高兴它成功了。
    猜你喜欢
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    相关资源
    最近更新 更多