Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Интернет. Лабораторные работы.doc
Скачиваний:
39
Добавлен:
09.09.2019
Размер:
531.97 Кб
Скачать

4.3.7.Работа с таблицами в dom

Таблица и ее элементы (строки, столбцы) также являются объектами дерева DOM и поддерживают все методы работы с ним. Кроме того, у таблиц (объект HTMLTableElement) есть дополнительные средства навигации и доступа к элементам.

table.rows[] – список строк таблицы;

tr.cells[] – список ячеек строки;

tr.rowIndex ­­– номер строки;

td.cellIndex ­– номер ячейки в строке.

Можно получить количество строки таблицы и количество ячеек в строке:

table.rows.length – количество строк таблицы;

tr.cells.length – количество ячеек в строке.

Для добавления и удаления элементов таблицы можно воспользоваться функциями:

table.insertRow(индекс_строки) – вставка строки;

tr.insertCell(индекс_строки) – вставка ячейки в строку.

В следующем примере реализован сценарий добавления и удаления данных в таблицу:

<html>

<head>

<script>

function add(form) {

table1 = document.getElementById('mytable'); //получение таблицы по имени

row1 = table1.insertRow(table1.rows.length); //вставка строки в таблицу

cell1 = row1.insertCell(row1.cells.length); //вставка 1-ой ячейки в строку

cell1.innerHTML = row1.rowIndex; //добавление номера строки в первую ячейку

cell1 = row1.insertCell(row1.cells.length); //вставка 2-ой ячейки в строку

if (form.info.value != "") cell1.innerHTML = form.info.value //вставка данных в ячейку

else cell1.innerHTML = "default";

cell1 = row1.insertCell(row1.cells.length); //вставка 3-ей ячейки в строку

cell1.innerHTML = "<input type=\"checkbox\" name=\"check\">"; //добавление чекбокса в ячейку

}

function del(form) {

table1 = document.getElementById('mytable'); //получение таблицы по имени

var i = table1.rows.length; //получение кол-ва строк в таблице

while (i--) { //цикл перебора строк

var row1 = table1.rows[i] //получение текущей строки

if (row1.cells[2].childNodes[0].checked){ //если отмечен чекбокс текущей строки

table1.deleteRow(row1.rowIndex); //удалить текущую строку

}

}

}

</script>

</head>

<body>

Таблица:

<table id="mytable" border="1">

<tr>

<th>Номер</th>

<th>Значение</th>

<th>Отметить</th>

</tr>

<table>

<br>

<form>

<input type="text" name="info">

<input type="button" onclick="add(this.form)" value="Добавить"/><br>

<input type="button" onclick="del(this.form)" value="Удалить отмеченные"/>

</form>

</body>

</html>

http://javascript.ru/forum/events/4237-dinamicheskoe-udalenie-strok-tablicy.html

http://javascript.ru/forum/events/2799-problemy-s-insertrow-i-insertcell.html

4.4.Работа со стилями при помощи JavaScript

4.4.1.Работа с классом элемента

Свойство className соответствует HTML-атрибуту class. При помощи этого свойства можно присвоить элементу любой класс:

document.body.className = myclass”;

Поскольку элемент может одновременно иметь несколько классов, перечисленных через пробел то можно добавить к уже существующим классам новый:

document.body.className += ” myclass”;

Поиск и удаление класса в списке классов, разделенных пробелами, требует более сложного программного кода, связанного с разбором текстовой строки – свойства className.

Для того чтобы удалить все классы элемента, достаточно присвоить свойству className пустое значение:

document.body.className = ”;