Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 15.08.2014, 09:19
Аватар для IndigoHollow
Аспирант
Отправить личное сообщение для IndigoHollow Посмотреть профиль Найти все сообщения от IndigoHollow
 
Регистрация: 02.04.2012
Сообщений: 50

Сообщение от рони Посмотреть сообщение
а зачем тогда второй цикл??
пост 3 добавьте ячейку в строку 33 и всё
Помогите разобраться пожалуйста. Вот у нас рабочий код, который из небольшой таблицы выбирает строки с первой буквой "Б" во второй колонке:

<!DOCTYPE HTML>
 
<html>
 
<head>
  <title>Untitled</title>
</head>
 
<body>    

<input name="filt1" onclick="filtera('sf')" type="button" id="filt1" />

<table id="sf" border="1">
        <tr>
			<td>Номер</td>
            <td>Наименование</td>
        </tr>
        <tr>
			<td>1</td>
            <td>Бочка</td>
        </tr>
        <tr>
			<td>2</td>
            <td>Аквариум</td>
        </tr>
        <tr>
			<td>3</td>
            <td>Астронавт</td>
        </tr>
        <tr>
			<td>4</td>
            <td>Бирка</td>
        </tr>
        <tr>
			<td>5</td>
            <td>Аргентина</td>
        </tr>
</table>
 
 <script>
    function filtera (_id1){
        var table1 = document.getElementById(_id1);
        var ele1;
        for (var r = 1; r < table1.rows.length; r++) {
            ele1 = table1.rows[r].cells[1].innerHTML.replace(/<[^>]+>|\s/g,"");
                var displayStyle = 'none';
                if (ele1.toLowerCase().charAt(0) == 'б') displayStyle = '';
            table1.rows[r].style.display = displayStyle;
        }
    }
 
 </script>
</body>
</html>


Однако, если вместо данной маленькой таблички подставить большую, то нажатие на кнопку ни к чему не приводит. Просто нет никакой реакции. Реализацию можно посмотреть здесь:
http://animap.ru/new.html

UPD1: Разобрался из-за чего не работает. Из-за строк, объетиняющих несколько колонок по средствам colspan. Как обойти?

UPD2: Все просто. Сначала надо самому думать. потом писать на форум)

function filtera (_id1){
        var table1 = document.getElementById(_id1);
        var ele1;
        for (var r = 1; r < table1.rows.length; r++) {
			if(table1.rows[r].cells.length >=2) {
				ele1 = table1.rows[r].cells[1].innerHTML.replace(/<[^>]+>|\s/g,"");
                var displayStyle = 'none';
                if (ele1.toLowerCase().charAt(0) == 'б') displayStyle = '';
				table1.rows[r].style.display = displayStyle;
			} else {
				table1.rows[r].style.display = 'none';
			}
        }
    }

Последний раз редактировалось IndigoHollow, 15.08.2014 в 09:39.
Ответить с цитированием
  #12 (permalink)  
Старый 15.08.2014, 12:00
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

Не у всех строк таблицы есть вторая ячейка
отсюда ошибка обращения к несуществующим свойствам
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
фильтрация .csv таблицы br1ck Элементы интерфейса 0 13.11.2013 08:35
Динамическое удаление строк таблицы Tankist Events/DOM/Window 16 03.07.2013 16:42
Фильтрация таблицы Tmin10 jQuery 1 06.09.2012 12:16
Изменение окраски строк таблицы, исходя из данных? Space-06 Events/DOM/Window 4 14.02.2012 21:32
Перемещение строк таблицы в Firefox barcelona jQuery 17 23.02.2009 15:41