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