Как скрыть столбцы таблицы в jQuery?

У меня есть таблица с большим количеством столбцов. Я хочу дать пользователям опцию выбрать столбцы, которые будут показаны в таблице. Эти опции были бы флажками наряду с именами столбцов. Таким образом, как я могу скрыться/раскрыть столбцы таблицы на основе флажков?

Был бы, скрываясь (использующий .hide ()) каждый td в каждой работе строки? Может быть я могу присвоить значение флажка местоположению столбца в таблице. Таким образом, первый флажок означает первый столбец и так далее. И затем рекурсивно скройтесь, который 'пронумеровал' td в каждой строке. Это работало бы?

6
задан Brian Tompsett - 汤莱恩 27 May 2017 в 21:44
поделиться

2 ответа

Попробуйте:

function hideColumn(columnIndex) {
    $('#mytable td:nth-child('+(columnIndex+1)+')').hide();
}

Это довольно простая версия - в ней предполагается, что ваша таблица не использует элементы и не имеет переменной ширины столбцов, но основная концепция присутствует. Обратите внимание, что nth-child использует индексирование на основе 1 . Я добавил 1 на последнем этапе, чтобы это компенсировать.

14
ответ дан 8 December 2019 в 16:00
поделиться

Я создал сценарий, который делает то, что предлагает Рекс. В каждом столбце есть флажок (или элемент), который при нажатии определяет, в каком столбце он находится, на основе n-го дочернего элемента, а затем скрывает те же столбцы друг в друге TR.

Перед .hide () я бы добавил класс, на который можно было бы ссылаться, чтобы вернуть столбец.

Проблема, с которой я столкнулся, заключалась в том, что я работал с сильно стилизованными таблицами, в которых некоторые строки имели colspans, а некоторые TD имели уникальные классы в зависимости от их положения в строке. Я разглагольствовал о проблемах в IE, где IE не всегда показывал () скрытые TD с правильным стилем. Похоже, у IE возникли проблемы с перерисовкой TD.

1
ответ дан 8 December 2019 в 16:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: