Помогите доработать функцию выполняющую фильтрацию строк таблицы содержащих значение выбранное в пользовательской форме (заранее скрытые строки становятся видимыми если условие выполнено).
принцип работы следующий:
значение 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" и т.д.).
Как собрать всё это в единое целое и чтобы стабильно работало ????