2010-04-05

Как показывать и прятать строки таблицы

Давным давно стояла задача, как при помощи JavaScript прятать одни строки таблицы и показывать другие. В CSS у стиля display есть значение table-row которое как раз и применяется по умолчанию к элементам типа TR, однако в Internet Explorer поддержка табличных классов практически не реализована, поэтому прямое присваивание .style.display = 'table-row' в IE ниже восьмой версии работать не будет. Не работает также и run-in. Однако, есть одно значение display которое железно работает везде - это nodisplay.

Как при помощи nodisplay показать спрятанный элемент? Просто удаляем связанный с TR класс! Т.е. у невидимых элеменов будет класс с display:nodisplay, назовем его nodisplay у видимых этого класса не будет и они останутся видимыми. Если хотим сделать видимыми невидимые элементы а невидимые видимыми то просто удаляем невидимый класс у одних и добавляем его другим. Очень просто! Как это сразу не пришло мне в голову....

пример

row 1 row 1
row 2 row 2

 

комментарии:

 
Атиух (анонимный пользователь) | 2010-04-05
Чудеса проктологии
max | 2010-04-05

Атиукс, дружище, за что ты так не любишь JavaScript?

Атиух (анонимный пользователь) | 2010-04-05
Атиух (анонимный пользователь) | 2010-04-05
Да, и JS к этим конкретно чудесам отношения не имеет, здесь я не люблю браузеры, не соответствующие стандартам, и костыли, которые ради них наворачивают.
max | 2010-04-05

Красивая картинка :), я ее чуть чуть уменьшил чтобы помещалась на странице. Возможно ты и прав, я тоже не люблю костыли, предпочитаю использовать что то типа "наименьшего общего знаменателя" - т.е. использовать только те свойства которые все браузеры поддерживают более или менее одинаково. Это трудно, но это одновременно и интересно. Может быть когда нибудь настанет рай и все браузеры будут подчиняться стандартам, но мэн, стандарты тоже постоянно развиваются - этот путь бесконечен всегда будут браузеры не успевающие за развитием стандартов.

Атиух (анонимный пользователь) | 2010-04-05
Значит, нечего использовать такие браузеры -- поддерживая их кривизну, ты продлеваешь агонию.
max | 2010-04-05

Дело в том, что не я решаю какие браузеры поддерживать а какие нет - я просто реализую пожелания своих заказчиков, если я буду поддерживать только те браузеры какие мне нравится за такую работу мне не заплатят - а значит моей семье нечего будет кушать, поэтому я стараюсь решать поставленные задачи так чтобы было интересно и мне и заказчику :)

Для того чтобы каждый раз не представляться можно войти как зарегистрированный пользователь.

Имя*

разрешены только теги br, font, span, p, strong, u, p, blockquote, a, div, img - остальные будут безжалостно удаляться