IE7 с размахом строк при динамическом сворачивании нескольких строк (дополнительное пространство внизу) - PullRequest
1 голос
/ 05 марта 2011

Я пытаюсь динамически скрывать / показывать несколько строк таблицы, используя Javascript для имитации свертывания / развертывания. Вот соответствующие фрагменты кода:

function selectionFilter(check, filter){
        var elem = document.getElementById('myScrollTable').rows;
        for(i = 0; i < elem.length; i++){
            var type = elem[i].getAttribute('type');
            if(type== filter){
                if(check == true){
                    elem[i].style.display='';
                }else{
                    elem[i].style.display='none';
                }
            }
        }
    }

и вот пример HTML:

    <input type="checkbox" checked="true" value="t1" onclick="selectionFilter(this.checked, this.value);">some type 1</input >
<input type="checkbox" value="t2" onclick="selectionFilter(this.checked, this.value);">some type 2</input ><br><br>
<table cellspacing="1" cellpadding="2" class="" id="myScrollTable">
    <thead>
        <tr>
            <th>Data1</th>
            <th>Data2</th>
        </tr>
    </thead>

    <tbody>
        <tr type="t1">
            <td rowspan="50"><a href="something1">something1</a></td><td><a href="something2">something2</a></td>
        </tr>
        <tr type="t1">
            <td><a href="something2">something2</a></td>
        </tr>
            .
            .
        <tr type="t2" style="display:none;">
            <td rowspan="50"><a href="something1">something1</a></td><td><a href="something2">something2</a></td>
        </tr>
        <tr type="t2" style="display:none;">
            <td><a href="something2">something2</a></td>
        </tr>
            .
            .
    </tbody>
</table>

В Firefox все хорошо. Однако в IE, после того, как в первый раз любая строка скрыта, когда она скрыта, в нижней части появляется дополнительное пространство. Это не происходит, когда rowspan не используется. Я перепробовал много вещей, но не смог избавиться от лишнего места.

Я был бы очень признателен, если бы кто-нибудь дал мне подсказку.

1 Ответ

0 голосов
/ 16 марта 2011

Вы пытались использовать block вместо пустой строки?

вы должны попробовать использовать

elem[i].style.display = 'block';

и если это не удастся, попробуйте

elem[i].style.display = 'table-row';

и всегда проверяйте документацию w3schools, она действительно полезна http://www.w3schools.com/css/pr_class_display.asp

Скажите, работает ли это для вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...