Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Построение таблицы внутри дива. Обращение к ячейкам 
V
    Опции темы
Innuendo
Дата 3.3.2006, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: 2
Всего: 6



При нажатии на кнопку стоится див, и в нём формируется таблица:
Код

function magicSquare(n){
var square=document.createElement("DIV");
/*Строим квадрат*/
square.className = "magic";
document.body.appendChild(square);
var tableSquare="<table border='1' id='magicTable' cellspacing='0' cellpadding='7'>";
tableSquare+="<th colspan='"+n+"'>Maqic Square</th>"
for (var i=1; i<=n+1; i++){
 tableSquare+="<tr align='center'>"
 for (var j=1; j<=n+1; j++){
  var id=i+"_"+j;
  tableSquare+="<td id='"+id+"' onclick='alert(this.id)'>0</td>";
  }
  tableSquare+="</tr>"
  }
  tableSquare+="</table>"
       /* тест*/
       for (i=1; i<=n; i++) {
         var idn = Number(n+1)+"_"+i;
          alert(document.getElementById(idn).innerHTML);
       }
     /*Конец теста*/
 square.innerHTML = tableSquare; 
 square.style.top=350;
 square.style.left=300;
 square.style.visibility="visible";
 
}

То что, обведено в комментарии "Тест", у меня не получается:
Мне надо сделать боковые ячейки другим цветом. Ну тут я уже упростил, потому что искал ошибку, тут он сканит по идее нижнюю строку таблицы. Для примера пусть алертит все значения нижней строки.
Консоль молчит, но он застопыривается на строке: alert(square.getElementById(idn).innerHTML);
Пробовал вместо idn определенный id заводить,и всё равно.
Думал, что почему-то он не задает элементам id. Но им задаёт. Ячейкам завел onclick='alert(this.id)', и при клике на ячейки ид номер выводится.

В чем проблема? как можно обратится к этим элементам?

Это сообщение отредактировал(а) Innuendo - 3.3.2006, 22:04


--------------------
=)
PM MAIL ICQ Jabber   Вверх
Ciber SLasH
Дата 4.3.2006, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Цитата(Innuendo @ 3.3.2006, 22:02 Найти цитируемый пост)
То что, обведено в комментарии "Тест", у меня не получается:

И не получится, ведь ты построенную таблицу ещё никуда не подключил, она в этом месте ещё висит в воздухе.
Кстати функцию определяй перед HEAD, а вызывай после BODY, а то твоя функция по другому не захотела запускаться.
PM   Вверх
Innuendo
Дата 4.3.2006, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: 2
Всего: 6



ну она у меня в хеде, и вызывается в боди, да.

А как мне тогда поступить? ещё такая проблема: див не хочет выравниваться первый раз. то есть я сделал чтоб он выравнивался по центру. Нажимаю первый раз- он абы где вылазит, закрываю его, открываю заново и по центру.
Ошибка в том, что первый раз его ширина и длина равна 4 пикселя. Так как таблица не входила в див.
А как можно исправить?
я попробовал так: сделал пустой див вручную в ХТМЛ. но всё равно первый раз он берет его пустую ширину и длину.. и к элементам таблицы тоже не может обратитсяsmile


--------------------
=)
PM MAIL ICQ Jabber   Вверх
Ciber SLasH
Дата 4.3.2006, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Давай по порядку, я уже запутался что нужно. Опиши по пунктам что хочешь сделать.
PM   Вверх
Innuendo
Дата 4.3.2006, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: 2
Всего: 6



1) чтобы этот див выводился по центру экрана
2) крайние ячейки таблицы выводились другим стилем (ну мне главное, как обратится вообще в к ячейкам, а уже к тем, что мне нежно я обращусь smile )


--------------------
=)
PM MAIL ICQ Jabber   Вверх
Zaman
Дата 4.3.2006, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 28.6.2004

Репутация: 1
Всего: 2



1. Сначал нужно построить Таблицу, у тебя в 7 строке пропущено '<TR>'
2. Добавить таблицу в DIV.
3. Добавить DIV в тело документа.
Я бы так сделал.
Таблицу бы строил не при помощи innerHTML, а - createElement().
Пример построений:
Код

var table = document.createElement("table");
table.setAttribute("border", "1");
var tbody = document.createElement("tbody");
var tr = document.createElement("tr");
var td = document.createElement("th");
// reusing the same variable name in the loop
// begin table heading information
td.appendChild(document.createTextNode("ля-ля-ля"));
tr.appendChild(td);
td = document.createElement("th");
td.appendChild(document.createTextNode("ля-ля-ля"));
tr.appendChild(td);
td = document.createElement("th");
td.appendChild(document.createTextNode("ля-ля-ля"));
tr.appendChild(td);
tbody.appendChild(tr);
// end table heading information
table.appendChild(tbody);
document.body.appendChild(table);




PM MAIL   Вверх
Innuendo
Дата 4.3.2006, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: 2
Всего: 6



Zaman,
спасибо, мне надо таблицу n*n, ну я уже там в цикле думаю сделаю.
А вот по поводу 7-ой строки. А что, обязательно <th> обводить в <tr>? на сколько я знаю, это самостоятельный элемент, или я не прав? smile


--------------------
=)
PM MAIL ICQ Jabber   Вверх
Zaman
Дата 4.3.2006, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 28.6.2004

Репутация: 1
Всего: 2



не прав smile

А как ты хочешь обратиться к ячейкам ?
PM MAIL   Вверх
Innuendo
Дата 4.3.2006, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: 2
Всего: 6



то есть заголовк таблицы будет выглядеть так:
<tr><th colspan=x>Загловок</th></tr>
?

Это сообщение отредактировал(а) Innuendo - 4.3.2006, 15:35


--------------------
=)
PM MAIL ICQ Jabber   Вверх
Zaman
Дата 4.3.2006, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 28.6.2004

Репутация: 1
Всего: 2



да
PM MAIL   Вверх
Innuendo
Дата 4.3.2006, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: 2
Всего: 6



ок, спасибо, получилось.

Попутный вопрос:
как выронвять построенную таблицу? ну задать ячейкам одну ширину- максимальную то есть.


--------------------
=)
PM MAIL ICQ Jabber   Вверх
Zaman
Дата 4.3.2006, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 28.6.2004

Репутация: 1
Всего: 2



Спроси в разделе верстки, ведь это раздел JS ;)
PM MAIL   Вверх
Innuendo
Дата 4.3.2006, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: 2
Всего: 6



Всё, ок.. у меня там был скрипт, ищет самую большу ширину, и всем столбцам её задает.

Проблема решена. Вопрос исчерпан.

Всем спасибо smile


--------------------
=)
PM MAIL ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1008 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.