Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.03.2018, 22:52
Интересующийся
Отправить личное сообщение для angel026 Посмотреть профиль Найти все сообщения от angel026
 
Регистрация: 18.07.2017
Сообщений: 15

Как увеличить 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, и т.д.?
Заранее благодарю за ответ )))
Ответить с цитированием
  #2 (permalink)  
Старый 28.03.2018, 23:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

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>
Ответить с цитированием
  #3 (permalink)  
Старый 28.03.2018, 23:16
Интересующийся
Отправить личное сообщение для angel026 Посмотреть профиль Найти все сообщения от angel026
 
Регистрация: 18.07.2017
Сообщений: 15

Работает!!! Только почему начало отсчета идет с -1?
и я убрал " return function() { " с этим мой код не хотел ваще работать
Ответить с цитированием
  #4 (permalink)  
Старый 28.03.2018, 23:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от angel026
Работает!!! Только почему начало отсчета идет с -1?
и я убрал " return function() { " с этим мой код не хотел ваще работать
вам дали вкусное решение, зачем кактус есть?

Последний раз редактировалось рони, 28.03.2018 в 23:23.
Ответить с цитированием
  #5 (permalink)  
Старый 28.03.2018, 23:28
Интересующийся
Отправить личное сообщение для angel026 Посмотреть профиль Найти все сообщения от angel026
 
Регистрация: 18.07.2017
Сообщений: 15

Сообщение от рони Посмотреть сообщение
вам дали вкусное решение, зачем кактус есть?
Не понял?
В чем кактус? просто у меня обработчик события висит в php цикле, а JS код в другом файле, я полный профан в JS и по этому, видимо, ем кактус, но если скопировать Ваш вариант, функция не работает, а если убрать "return..." все начинает работать, только счет id начинается с -1.
Ответить с цитированием
  #6 (permalink)  
Старый 28.03.2018, 23:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

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>
Ответить с цитированием
  #7 (permalink)  
Старый 28.03.2018, 23:34
Интересующийся
Отправить личное сообщение для angel026 Посмотреть профиль Найти все сообщения от angel026
 
Регистрация: 18.07.2017
Сообщений: 15

Епона РАБОТАЕТ!!!
Спасибо!
Я и не знал, что так ваще можно )))) Крутяг!!!!!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не пойму как вызвать правильный номер элемента при клике lennaganci Элементы интерфейса 4 26.07.2016 14:43
Удалить некоторые ссылки со страницы при помощи js goga5 Общие вопросы Javascript 7 12.07.2016 14:41
Изменение стиля родительского элемента при :hover дочернего lanzs Элементы интерфейса 2 16.10.2010 13:28
Как сделать так, чтобы JS при нажатии на кнопку не выполняла запрос со страницы. JSProgrammer Элементы интерфейса 3 18.05.2010 20:18
Подскажите как при помощи JS hta в трею свернуть kimboo Общие вопросы Javascript 4 11.07.2008 16:00