Создание кнопок исключительно 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, время: 23:53. |