Динамическое формирование таблицы
Всем добрый день. Есть вот такой код:
<html> <head> </head> <body> <script language="JavaScript" type="text/javascript"> function createelem(tag, id, elem){ var el=document.createElement(tag); el.id=id; if(elem) elem.appendChild(el); return el; } function createtn(str, elem){ var tn=document.createTextNode(str); if(elem) elem.appendChild(tn); return tn; } var i, j, tbl, th, tb, tr, td; tbl=createelem("table", "", document.body); th=createelem("thead", "", tbl); tb=createelem("tbody", "", tbl); for(i=0; i<5; i++){ tr=createelem("tr", "", tb); for(j=0; j<5; j++){ td=createelem("td", "", tr); td.style.background="green"; td.onclick=function(){alert(i+""+j);} createtn(i+""+j, td); } } i=8; j=8; </script> </body> </html> Он динамически строит таблицу. Вопрос вот какой. Как изменить строку: td.onclick=function(){alert(i+""+j);} чтобы i и j воспринимались браузером как значения переменных, а не сами переменные. Т.е надо, чтобы при клике по нулевой ячейке нулевой строки формировалось 00, при клике по первой ячейке нулевой строки формировалось 01 и т.д., а не последние значения i и j (в данном случае 88). |
Наверное в этом проблема:
td.onclick=function(){alert(i+""+j);} Почитайте про замыкания td.onclick = function(i, j) { return function(){alert(i+""+j);}; }(i, j); |
Большое спасибо! Сам бы в век не допер...
|
Часовой пояс GMT +3, время: 08:37. |