![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Castro |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 353 Регистрация: 31.8.2007 Где: Украина Репутация: нет Всего: 5 |
Хотел у многоуважаемых гуру JS совета спросить.
Есть задача выводить данные вдинамически сгерерированую таблицу. Всё что мног нарыть это http://forum.vingrad.ru/forum/topic-86102/unread-1.html. Но точно помню что был где-то на сайте пример где таблица как-то циклами формируется. Как это сделать? И второй вопрос касательно хранения данных, которые будут выводится в эту таблицу. Это одна строка, сшиваемая с нескольких. Пример: 1.*Поиск А в Б.* Должно найти 2 строки. Найдено *2. (* - просто разделитель) 1. Номер 2.Строка 1 3.Строка 2 4.Результат возвращённый скриптом Тоесть это 4 элемента. Причём последний -это результат выполнения скрипта, предпоследний - ожидаемый результат. Как хранить такое? Возможно создать такой объект, ну или в массиве хранить? С уважением P.S. На данном этапе храню это так:
Это сообщение отредактировал(а) Castro - 3.10.2007, 10:48 |
|||
|
||||
| Pokoinik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 17.3.2007 Где: /dev/null Репутация: 1 Всего: 3 |
опиши пожалуйсто подробнее данные которые ты собираешься хранить..
а таблицу генерить можно так:
-------------------- ICQ: 490-993 Существует только 10 типов людей: те, которые понимают двоичную систему, и которые ее не понимают!!! Опасайтесь людей верующих, ибо у них есть боги, которые им все прощают. Делай или не делай! Никаких попробую! Йода (Yoda), мастер-джедай |
|||
|
||||
| Castro |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 353 Регистрация: 31.8.2007 Где: Украина Репутация: нет Всего: 5 |
Значит так. Первый элемент - это описание просто(текст задаётся руками). 2-й - тоже текст(у меня это ожидаемое значение,тоже задаётся руками при заполнении массива).
3-й - это функция (как у меня refu.getElementCount(document,'link','myID1','id')), результат выполнения которой должен выводится в ячейку таблицы . Вот и вся строка. Каждый элемент в отдельной ячейке должен хранится и ну и выводится с 1го по 3й в строке таблицы. Что скажешь? |
|||
|
||||
| Astraller |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.8.2007 Где: $Украина[Кры м]->Феодосия Репутация: 2 Всего: 5 |
1) Будет работать только при загрузке страницы 2) Под IE тестили? PS Лучше DOM.
-------------------- A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair |
||||||
|
|||||||
| Castro |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 353 Регистрация: 31.8.2007 Где: Украина Репутация: нет Всего: 5 |
А поподробнее? Как создать скажем таблицу 2х2 с текстовыми узлами внутри? Циклами желательно ибо много будет строк
Это сообщение отредактировал(а) Castro - 3.10.2007, 12:10 |
|||
|
||||
| SelenIT |
|
||||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Castro,
Раз все равно храните в виде фрагмента HTML, почему бы сразу не строить строку таблицы?
Тогда вывод будет элементарным:
Хотя правильнее, конечно, хранить "голые" данные отдельно от представления. Но если, кроме как в эту таблицу, они больше никуда не выводятся - можно и так. Astraller, А что не так в IE с этим примером (при условии п.1, конечно)? Лучше идеологически, но, увы, не быстрее. -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
||||
|
|||||
| Castro |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 353 Регистрация: 31.8.2007 Где: Украина Репутация: нет Всего: 5 |
В том то и дело что хочется хранить голые данные не зависимо от их отображения. К тому же сам массив данных будет формироваться в другом скрипте. Поэтому мне пока что нужно написать именно сам вывод в таблицу ну и постараться придумать как хранить данные -в массиве или объекте.
Нашёл что-то типа
Уже более похоже Это сообщение отредактировал(а) Castro - 3.10.2007, 12:22 |
|||
|
||||
| SelenIT |
|
||||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Все равно. Имхо, нагляднее всего - массив объектов:
И вывод опять же через innerHTML:
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
||||
|
|||||
| Castro |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 353 Регистрация: 31.8.2007 Где: Украина Репутация: нет Всего: 5 |
SelenIT, спасибо за решение-очень интересно и думаю как раз то, что нужно. Не подскажете где на русском можно про массивы объектов почитать?
|
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Castro, а чего про них читать? JS - язык гибкий, элементами массива и свойствами объекта в нем может быть что угодно (хоть хоть объект, хоть массив, хоть функция), комбинируйте их как Вам угодно. Имхо, относительно неплохо написано здесь.
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| Astraller |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.8.2007 Где: $Украина[Кры м]->Феодосия Репутация: 2 Всего: 5 |
Собственно вы правы при document.write ничего. А вот при вставке новый строк посредством innerHTML/insertAdjacentHTML будут проблемы. Хм. Спасибо за полезную информацию. Никогда бы не подумал что DOM работает медленнее :( -------------------- A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Это верно, по частям работать с innerHTML таблицы IE не любит. Но если вставлять целую таблицу, все будет нормально. -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| Castro |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 353 Регистрация: 31.8.2007 Где: Украина Репутация: нет Всего: 5 |
Попутный вопрос: я хочу сравнивать переменые expected и actual. Теоретически expected может быть и строкой, как и actual, всё зависит от того что в объект внесли. Как мне проверять равнЫ ли эти 2 переменные? Преобразовать как-то в string? Как?Или может при инифиализации массива задать тип конкретных элементов?
|
|||
|
||||
| Castro |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 353 Регистрация: 31.8.2007 Где: Украина Репутация: нет Всего: 5 |
Писал так
И было мне щастье. Но теперь нужно вынести массив за пределы функции или лучше вообще в другой файл. Теперь функция имеет вид
и столбец actual: выдаёт только нули. Почему?Что не так? |
||||
|
|||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Видимо, потому что заполнение массива t происходит до полной загрузки страницы, когда, естественно, body пуст и не содержит ничего из искомого. Предлагаю превратить его в функцию:
и внутри функции crtTable() вызывать ее: var t = t(). -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |