jquery count: visible не работает в IE7 - PullRequest
1 голос
/ 10 августа 2011

Я создал инструмент, использующий 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>

1 Ответ

2 голосов
/ 10 августа 2011

Похоже, это старая ошибка, которая была исправлена ​​около 2 лет.Вы можете обновить свою версию jquery или изменить свой селектор следующим образом:

:not(:hidden)

Это обходной путь, который, как я обнаружил, будет работать, как утверждают люди.

(не проверено, поскольку у меня нет IE7)

...