value для элемента массива
for (n=0; n<10; n++) { a[n] = document.createElement('input'); a[n].onclick = 't = event.target; t.value = "X"'; document.getElementById('mytable').appendChild(a[n]); } При клике ничего не происходит. Как правильно написать событие? |
a[n].onclick = function(){ t = event.target; t.value = "X"'; }События пишутся вот так |
Sweet,
от этого ничего не меняется |
a[n].onclick = function ( e ) { (e || window.event)[-[1,] ? 'target' : 'srcElement'].value = 'X'; }; Кстати, (e || window.event)[-[1,] ? 'target' : 'srcElement'] можно заменить на this. |
Цитата:
Цитата:
|
Sweet,
ну ты ведь тоже написал с target :) exec, спасибо)) Незнаю почему, но функция почему-то действует только на последний ряд. for (n=0; n<(rows*cols); n++) { a[n] = document.createElement('input'); a[n].onclick = function () { this.value = 'X'; }; for (k=1; k<=cols; k++) { if (n == k*cols) document.getElementById('mytable').innerHTML += '<br />' ; } document.getElementById('mytable').appendChild(a[n]); |
Цитата:
UPD: Цитата:
|
Проблема этим не решилась
|
А если попробывать
document.getElementById('mytable').innerHTML += a[n] , то появляется только надписи [object HTMLInputElement] |
<table border="1" cellspacing="0" cellpadding="4"> <tr><td></td><td></td></tr> <tr><td></td><td></td></tr> </table> <script> var cells = document.getElementsByTagName('td'), a = [] for(var i = 0, len = cells.length; i < len; i++){ a[i] = document.createElement('input') a[i].onclick = function(){ this.value = 'Clicked!' } cells[i].appendChild(a[i]) } </script> Почитай тут. Особенно 4й пункт |
Sweet, спасибо за код, но у меня таблица создается добавлением в HTML код тега <br /> . Если не смогу решить как я хотел изначально, попробую создать таблицу на tr и td.
document.getElementById('mytable').innerHTML += '<br />' - из-за этого почему то onclick действует только на последний ряд. Кто-нибудь знает почему и как этого избежать? |
Часовой пояс GMT +3, время: 06:25. |