Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Несколько одинаковых таблиц. Обращение к отдельным элементам в них. (https://javascript.ru/forum/dom-window/12932-neskolko-odinakovykh-tablic-obrashhenie-k-otdelnym-ehlementam-v-nikh.html)

zaytsewa 09.11.2010 10:34

Несколько одинаковых таблиц. Обращение к отдельным элементам в них.
 
Привет всем!
Не могу придумать правильную архитектуру.

На странице должно быть несколько одинаковых таблиц с одинаковой структурой,
таблицы надо уметь динамически добавлять, удалять, обращаться к определённым полям в них и т.д.

Если бы таблица была одна - раздала бы всем нужным полям идентификаторы и обращалась бы к ним по id, а тут так вроде неправильно, т.к. таблиц несколько.

Можно впринципе придумать ещё какой-то новый аттрибут - один отвечает за название таблицы, а второй за идентификатор. Но тогда возникает потребность изобрести что-то типа tbl.getElementById(). это тоже велосипед какой-то....

можно ещё сложные идентификаторы делать - типа назв табл + id

А как делать правильно/удобно/красиво???

Всем заранее спасибо!

micscr 09.11.2010 11:51

таблички
их строчки
и ячейки также

zaytsewa 09.11.2010 12:26

гг) это я конечно же видела)

пока сделала аттрибут table_id + name у тех, у кого для одной таблички был бы id
+ сделала ф-цию

find_el(tbl_id,name)
{
var el = document.getElementsByName(name)
for (i = 0; i < el.length; ++i)
if (el[i].getAttribute("table_id") == tbl_id)
return el[i]

return -1
}

ksa 09.11.2010 21:51

zaytsewa, чем не угодили ИД типа

tbl+<номер_по_порядку>

zaytsewa 10.11.2010 10:18

просто я была уверена что существует какое-то более элегантное решение

ну там может создать что-то типа класса моя_таблица
и ко всем элементам обращаться через таблица.элемент
и потом везде её вставлять
или шаблоны какие-то или ещё что-то более прозрачное

ksa 10.11.2010 20:06

Цитата:

Сообщение от zaytsewa
ну там может создать что-то типа класса моя_таблица

Как вариант дать всем таблицам одинаковое имя и работать с ними как с массивом...

var tbl=document.getElementsByName('имя_семейства_таблиц')

vladlen 11.11.2010 03:41

А еще лучше работать как с ассоциативным массивом, только гиморно это :) Но за-то удобно.

ksa 11.11.2010 09:08

vladlen, так ты таки определись... "Геморно" это или все же "удобно"? :)


Часовой пояс GMT +3, время: 19:17.