Как увеличить id элемента при динамическом создании в JS?
Ох этот JS...
Снова обращаюсь за помощью к знатокам! Нужно при срабатывании события (выделение чек бокса) создать новый див с ид, при следующим выделении другого чек бокса, так же создать див с ид+1... Вот мои "потуги" закончились на этом: function createNewDiv() { var i=0; var cpu_in = document.getElementsByClassName("cpu_in")[0]; var divCpu = document.createElement('div'); divCpu.setAttribute('id', 'cpu_new_'+i); divCpu.innerHTML = "Новый ДИВ"; var parent = cpu_in.parentNode; parent.insertBefore(divCpu, cpu_in); //создаю ДИВ i++; } Создаётся ДИВ с id=cpu_new_1 и все последующие дивы с таким же ид ((( Как сделать, чтобы остальные были с ид=...2, 3, и т.д.? Заранее благодарю за ответ ))) |
angel026,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <div><div class="cpu_in"></div></div> <script> function createNewDiv(i) { return function() { var cpu_in = document.getElementsByClassName("cpu_in")[0]; var divCpu = document.createElement('div'); divCpu.setAttribute('id', 'cpu_new_'+i); divCpu.innerHTML = "Новый ДИВ " + i; var parent = cpu_in.parentNode; parent.insertBefore(divCpu, cpu_in); //создаю ДИВ i++; } } createNewDiv = createNewDiv(77); createNewDiv() createNewDiv() createNewDiv() </script> </body> </html> |
Работает!!! Только почему начало отсчета идет с -1?
и я убрал " return function() { " с этим мой код не хотел ваще работать |
Цитата:
|
Цитата:
В чем кактус? просто у меня обработчик события висит в php цикле, а JS код в другом файле, я полный профан в JS и по этому, видимо, ем кактус, но если скопировать Ваш вариант, функция не работает, а если убрать "return..." все начинает работать, только счет id начинается с -1. |
angel026,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <div><div class="cpu_in"></div></div> <script> var createNewDiv = function(i) { return function() { var cpu_in = document.getElementsByClassName("cpu_in")[0]; var divCpu = document.createElement("div"); divCpu.setAttribute("id", "cpu_new_" + i); divCpu.innerHTML = "Новый ДИВ"; var parent = cpu_in.parentNode; parent.insertBefore(divCpu, cpu_in); i++; }; }(0); createNewDiv() createNewDiv() createNewDiv() </script> </body> </html> |
Епона :dance: РАБОТАЕТ!!!
Спасибо! :thanks: :thanks: :thanks: Я и не знал, что так ваще можно )))) Крутяг!!!!! |
Часовой пояс GMT +3, время: 14:52. |