Создание кнопок исключительно 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... |
подскажите плз как туда еще "+" и "=" вывести... чтоб он js юзал... :help:
(function () { var btn, q; { btn=document.createElement("BUTTON"); q=document.createTextNode("+"); btn.appendChild(q); btn.onclick = (function(ce){ return function() {document.body.onclick = function(ce) { var cee = cee || event; var target = cee.target; if (target.tagName == "BUTTON") { document.getElementsByName("view")[0].value = target.innerHTML; } }} })(i); document.body.appendChild(btn); } })(); |
Voksin, куда туда?)
создайте объект с данными для кнопок (текст кнопок, функции, которые они должны выполнять) и цикле создайте необходимое количество кнопок... |
Часовой пояс GMT +3, время: 20:56. |