Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Отфильтровать строки в таблице по заданным критериям (https://javascript.ru/forum/misc/6526-otfiltrovat-stroki-v-tablice-po-zadannym-kriteriyam.html)

Hag1989 03.12.2009 02:06

Отфильтровать строки в таблице по заданным критериям
 
Помогите доработать функцию выполняющую фильтрацию строк таблицы содержащих значение выбранное в пользовательской форме (заранее скрытые строки становятся видимыми если условие выполнено).


принцип работы следующий:

значение input type="checkbox" name="X1" ---> функция GetElementByTagName выполняющая поиск "X1" и в случае выполнения условия отображающая строки --> строки с ячейками таблицы содержащие "X1" .

Вот набросок идеи:

Код:

jspsFilterTabie (<Таблиц>, <Функция фильтрации> [, <Дополнительный параметр функции фильтрации]);
Первым параметром функции передается таблица, которую нужно отфильтровать;
Второй параметр задает функцию фильтрации, проверяющую, удовлетворяют ли данные, помещенные в ячейках строки секции тела таблицы, заданному критерию (если true то возвращает строку)

function jspsFilterTable(pTable, pFilterFunction, pAdditional) {

var piObject = jspsGetProgramInfo(); var isIE = (piObject.programName == JSPS_GPI_MSIE) var bodySectionObject = pTable.getElementsByTagName("TBODY"); bodySectionObject = bodySectionObject[0];

for (var i = 0; i < bodySectionObject.childNodes.length; i++) { var rowObject = bodySectionObject.childNodes[i]; rowObject.style.display = (pFilterFunction(rowObject, pAdditional)) ? ((isIE) ? "block" : "table-row") : "none"; } }


*jspsGetProgramInfo передает информацию о браузере клиента, её листинг я не стал приводить
**((isIE) ? "block" : "table-row") : "none"; это для любимого нами IE, кот. не поддерживает значение "table-row".

если данные в ячейке удовлетворяют условию (совпадают со значением параметра name (например "X1")), то строка отображается браузером.

А теперь самое интересное:
Выбранные в форме значения должны сохранятся в переменной bodySectionObject чтобы продолжать повторную фильтрацию среди уже выбранных строк при задании дополнительных условий в форме (name="X2" и т.д.).

Как собрать всё это в единое целое и чтобы стабильно работало ????


Часовой пояс GMT +3, время: 10:09.