Интерфейсы для элементов модулей Basic Tables и Tables

Модуль Basic Tables содержит элементы table, caption, tr, th и td, а модуль Tables – дополнительно элементы col, colgroup, thead, tbody и tfoot.

 

Для элементов thead, tbody и tfoot определен интерфейс HTMLTableSectionElement со следующими основными свойствами:

· align – значение атрибута align;

· vAlign – значение атрибута valign;

· rows – содержит объект типа HTMLCollection (только для чтения) со списком строк для данного элемента thead, tbody или tfoot.

Интерфейс HTMLTableSectionElement содержит также два метода:

· insertRow(индекс) – вставляет строку в элемент перед строкой с заданным индексом и возвращает вставленную строку (объект типа HTMLElement). Если индекс равен -1 или равен количеству строк в разделе таблицы, строка добавляется в конец раздела;

· deleteRow(индекс) – удаляет строку с заданным индексом из элемента.

 

Для элемента caption определен интерфейс HTMLTableCaptionElement (без свойств и методов).

 

Для элемента table определен интерфейс HTMLTableElement со следующими основными свойствами:

· border – значение атрибута border;

· cellPadding – значение атрибута cellpadding;

· cellSpacing – значение атрибута cellspacing;

· rows – содержит объект типа HTMLCollection (только для чтения) со списком строк для данной таблицы;

· caption – содержит объект типа HTMLTableCaptionElement с заголовком таблицы;

· tHead – содержит объект типа HTMLTableSectionElement с элементом thead;

· tFoot – содержит объект типа HTMLTableSectionElement с элементом tfoot;

· tBodies – содержит объект типа HTMLCollection (только для чтения) со списком элементов tbody (объектами типа HTMLTableSectionElement), включая неявно объявленные элементы.

Интерфейс HTMLTableElement содержит также следующие методы:

· createCaption() – вставляет заголовок в таблицу и возвращает вставленный заголовок (объект типа HTMLElement);

· deleteCaption() – удаляет заголовок из таблицы;

· createTHead() – вставляет заголовочную часть в таблицу и возвращает элемент thead (объект типа HTMLElement);

· deleteThead() – удаляет заголовочную часть из таблицы;

· createTFoot() – вставляет «подвальную» часть в таблицу и возвращает элемент tfoot (объект типа HTMLElement);

· deleteTFoot() – удаляет «подвальную» часть из таблицы;

· insertRow(индекс) – вставляет строку в элемент перед строкой с заданным индексом и возвращает вставленную строку (объект типа HTMLElement). Если индекс равен -1 или равен количеству строк в разделе таблицы, строка добавляется в конец раздела;

· deleteRow(индекс) – удаляет строку с заданным индексом из элемента.

 

Для элемента row определен интерфейс HTMLTableRowElement со следующими основными свойствами:

· align – значение атрибута align;

· vAlign – значение атрибута valign;

· rowIndex – индекс строки в таблице (только для чтения);

· sectionRowIndex – индекс строки в разделе таблице – заголовочной части, теле таблицы или «подвальной» части (только для чтения);

· cells – содержит объект типа HTMLCollection со списком ячеек данной строки.

Интерфейс HTMLTableRowElement содержит также два метода:

· insertCell(индекс) – вставляет ячейку в строку перед ячейкой с заданным индексом и возвращает вставленную ячейку (объект типа HTMLElement). Если индекс равен -1 или равен количеству ячеек в строке, ячейка добавляется в конец строки;

· deleteCell(индекс) – удаляет ячейку с заданным индексом из элемента

 

Для элементов td и th определен интерфейс HTMLTableCellElement со следующими основными свойствами:

· align – значение атрибута align;

· vAlign – значение атрибута valign;

· colSpan – значение атрибута colSpan;

· rowSpan – значение атрибута rowSpan;

· cellIndex – индекс ячейки в строке (только для чтения).

 

Для элементов col и colgroup определен интерфейс HTMLTableColElement со следующими основными свойствами:

· align – значение атрибута align;

· vAlign – значение атрибута valign;

· width – значение атрибута width;

· span – значение атрибута span.

 

 

Пример 4.5.18. Использование интерфейсов для таблиц:

Тело документа HTML имеет следующий вид:

<h1>Корзина закупок</h1>

В документе HTML задан также сценарий формирования таблицы содержимого корзины:

// Получение элемента body

var bodyElement = document.getElementsByTagName("body")[0];

// Заголовки таблицы

var headers = new Array("Наименование товара",

"Цена единицы (грн)", "Количество (шт)", "Цена (грн");

// Данные таблицы

var data = new Array(

new Array("Компьютер", "3000", "1"),

new Array("Принтер", "800", "3"),

new Array("Сканер", "520", "2"));

// Создание таблицы

var goodsTable = document.createElement("table");

// Задание границы таблицы

goodsTable.border = "4";

// Создание заголовка таблицы

var goodsTableCaption = goodsTable.createCaption();

// Занесение текста в заголовок таблицы

goodsTableCaption.appendChild(document.createTextNode(

"Содержимое корзины:"));

// Создание заголовочной части таблицы

var goodsTableHead = goodsTable.createTHead();

// Добавление строки к заголовочной части

goodsTableHeadRow = goodsTableHead.insertRow(-1);

// Заполнение строки заголовочной части таблицы в цикле

for(i = 0; i < headers.length; i++)

{

// Создание текущей ячейки

headerCelli = goodsTableHeadRow.insertCell(-1);

// Занесение текста в текущую ячейку

headerCelli.appendChild(

document.createTextNode(headers[i]));

}

// Начальное значение общей цены товара

totalPrice = 0;

// Создание тела таблицы

var goodsTableBody = document.createElement("tbody");

// Добавление тела к таблице

goodsTable.appendChild(goodsTableBody);

// Добавление строки к телу таблицы в цикле

for(i = 0; i < data.length; i++)

{

// Добавление строки к заголовочной части

goodsTableBodyRow = goodsTableBody.insertRow(-1);

 

// Заполнение текущей строки таблицы в цикле

for(j = 0; j < data[i].length; j++)

{

// Создание текущей ячейки

cellj = goodsTableBodyRow.insertCell(-1);

// Если ячейка не содержит

// наименования товара

if(j != 0)

// Выравнивание ячейки по центру

cellj.align = "center";

// Занесение текста в текущую ячейку

cellj.appendChild(

document.createTextNode(data[i][j]));

}

// Создание ячейки для цены

priceCell = goodsTableBodyRow.insertCell(-1);

// Определение цены товара

goodsPrice = parseInt(data[i][1]) *

parseInt(data[i][2]);

// Выравнивание ячейки по центру

priceCell.align = "center";

// Добавление полученной цены к общей цене

totalPrice += goodsPrice;

// Занесение цены в ячейку

priceCell.appendChild(

document.createTextNode(goodsPrice));

}

// Создание "подвала" таблицы

var goodsTableFoot = goodsTable.createTFoot();

// Добавление строки к "подвалу"

goodsTableFootRow = goodsTableFoot.insertRow(-1);

// Создание ячейки с надписью

labelCell = goodsTableFootRow.insertCell(-1);

// Установка размера ячейки с надписью в 3 столбца

labelCell.colSpan = "3";

// Установка выравнивания ячейки с надписью вправо

labelCell.align = "right";

// Занесение текста в ячейку с надписью

labelCell.appendChild(

document.createTextNode("Общая цена: "));

// Создание ячейки с общей ценой товара

totalPriceCell = goodsTableFootRow.insertCell(-1);

// Занесение текста в ячейку с общей ценой товара

totalPriceCell.appendChild(

document.createTextNode(totalPrice));

// Выравнивание ячейки по центру

totalPriceCell.align = "center";

// Добавление фрагмента документа к телу документа

bodyElement.appendChild(goodsTable);

В результате выполнения этого фрагмента будет выведена следующая Web-страница: