Сообщение от рони
|
а зачем тогда второй цикл??
пост 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';
}
}
}