У меня есть таблица, которая автоматически скрывает столбцы на маленьких экранах.В некоторых столбцах заголовок занимает две строки, например так:
<table cellspacing="0">
<thead>
<tr>
<th colspan="4" class="essential">Bestellung</th>
</tr>
<tr>
<th>Nummer</th>
<th>Datum</th>
<th class="essential">Menge</th>
<th class="essential">Wert</th>
</tr>
</thead>
...
У меня есть логика, чтобы пользователь мог скрыть / показать столбцы, которые он хочет.Я использую это, чтобы убедиться, что если все столбцы во второй строке заголовка скрыты, соответствующий элемент в первой строке заголовка также скрывается и, конечно, наоборот = показывать элемент первой строки, как только один второй элемент строки переключается.
var doubles = thead.find( "tr:first-child th, TR:first-child TH" ).not('[rowspan=2]');
if ( thead.find("tr, TR").length > 1 && thead.find("tr:last-child th:visible, TR:last-child TH:visible" ).length === 0 ) {
doubles.hide();
} else {
doubles.show();
}
Селектор : видимый работает нормально на экранах большего размера.При меньшем размере я автоматически скрываю некоторые столбцы при загрузке, а затем селектор больше не работает.
В приведенном выше примере видны классы .essential.Тем не менее, когда я переключаю любой из классов, следующее всегда возвращает 0: я не понимаю, почему консоль говорит 0,0,0, хотя 1,2,3 или все 4 элемента видны.
Может быть, кто-то может указать мне на возможную причину.
console.log( thead.find("tr:last-child th:visible").length );
console.log( thead.find("tr:last-child th").filter(":visible").length );
console.log( thead.find("tr:last-child th[display=table-cell]").length );
Есть ли другой способ выбора видимых элементов?