Создание кнопок исключительно JS-ом
Пытался это сделать посредством :
чтоб JS создал 24 кнопки и навесил на них значение цифр (1-24) выводя их в отдельную строку :cray: :cray: :cray: |
Я мож неправильно понял, но предложу такой код:
function doSomething(){ alert(this.textContent); } var fragment = document.createDocumentFragment(); for (var i=0; i<24; i++) { var button = document.createElement('button'); button.textContent = i + 1; button.onclick = doSomething; fragment.appendChild(button); } document.body.appendChild(fragment); |
а почему textContent а не innerHTML?.. кроссбраузерно же..
|
Voksin,
<html> <head> <script> function myFunction() { var btn, t; for (i=0; i < 24; i++) { btn=document.createElement("BUTTON"); t=document.createTextNode("CLICK ME "+i); btn.appendChild(t); btn.onclick = (function(i){ return function() { alert(i); } })(i); document.body.appendChild(btn); } } </script> </head> <body> <button onclick="myFunction()">Try it</button> </body> </html> |
Цитата:
P.S. как вариант можно реализовать чтоб кнопки появлялись просто при загрузки хмль-ки, не клацая по кнопке? |
Voksin,
<html> <head> </head> <body> <script> (function () { var btn, t; for (i=0; i < 24; i++) { btn=document.createElement("BUTTON"); t=document.createTextNode("CLICK ME "+i); btn.appendChild(t); btn.onclick = (function(i){ return function() { alert(i); } })(i); document.body.appendChild(btn); } })(); </script> </body> </html> |
Dim@, спасибо! именно так я и хотел сделать
|
допустим в верстке есть некий
<INPUT TYPE=text NAME="view" SIZE=30> подскажите плз как заствить js записывать в это поле кликнутую кнопку ? :) P.S. только плз не забрасывайте тухлыми яйцами :( |
Voksin, что имелось в виду под
Цитата:
<html> <head> </head> <body> <script> (function () { var btn, t; for (i=0; i < 24; i++) { btn=document.createElement("BUTTON"); t=document.createTextNode("CLICK ME "+i); btn.appendChild(t); btn.onclick = (function(i){ return function() { alert(i); } })(i); document.body.appendChild(btn); } })(); document.body.onclick = function(e) { var e = e || event; var target = e.target; if (target.tagName == "BUTTON") { document.getElementsByName("view")[0].value = target.innerHTML; } } </script> <INPUT TYPE=text NAME="view" SIZE=30> </body> </html> |
lord2kim,
оно, спасибо, сказываются пробелы в знании js... |
Часовой пояс GMT +3, время: 04:52. |