Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.06.2015, 13:16
Аватар для qwe88
Кандидат Javascript-наук
Отправить личное сообщение для qwe88 Посмотреть профиль Найти все сообщения от qwe88
 
Регистрация: 14.06.2014
Сообщений: 137

Добавление div-а после h2
Добрый день!
Подскажите, пожалуйста, как сделать так, что после каждого h2 вставлялся div со словами?

Сделал так, но див добавляется к последнему:
<h2>kfkdkd</h2>

<h2>ww</h2>

<h2>ww</h2>

<script>
    new_elem = document.createElement('div');
    new_elem.innerHTML = "baga";//ваш полученный код HTML
//Вставка нового элемента после элемента с id='todo'

    for (i=0; i<5; i++) {

        target = document.getElementsByTagName('h2')[i];
        target.parentNode.insertBefore(new_elem, target.nextSibling);

    }
</script>

Последний раз редактировалось qwe88, 01.06.2015 в 13:21.
Ответить с цитированием
  #2 (permalink)  
Старый 01.06.2015, 13:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

qwe88,
вы создали один элемент, один и добавится хоть 10 раз его вставить
Ответить с цитированием
  #3 (permalink)  
Старый 01.06.2015, 13:24
Аватар для qwe88
Кандидат Javascript-наук
Отправить личное сообщение для qwe88 Посмотреть профиль Найти все сообщения от qwe88
 
Регистрация: 14.06.2014
Сообщений: 137

Супер!
Спасибо огромное!
Ответить с цитированием
  #4 (permalink)  
Старый 01.06.2015, 13:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

qwe88,
<!DOCTYPE HTML>

<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
</head>

<body>
    <h2>kfkdkd</h2>

    <h2>ww</h2>

    <script>
        var h = document.getElementsByTagName('h2'),
            target, new_elem;
        for (i = 0; i < h.length; i++) {
            new_elem = document.createElement('div');
            new_elem.innerHTML = "baga";
            target = h[i];
            target.parentNode.insertBefore(new_elem, target.nextSibling);
        }
    </script>

</body>

</html>
Ответить с цитированием
  #5 (permalink)  
Старый 01.06.2015, 13:29
Аватар для qwe88
Кандидат Javascript-наук
Отправить личное сообщение для qwe88 Посмотреть профиль Найти все сообщения от qwe88
 
Регистрация: 14.06.2014
Сообщений: 137

Примерно так я и сделал:
<h2>kfkdkd</h2>

<h2>ww</h2>

<h2>ww</h2>

<script>

    var beg = document.getElementsByTagName('h2');

    for (i=0; i<beg.length; i++) {
        new_elem = document.createElement('div');
        new_elem.innerHTML = "baga";

        target = document.getElementsByTagName('h2')[i];
        target.parentNode.insertBefore(new_elem, target.nextSibling);

    }
</script>


Спасибо вам огромное!
Ответить с цитированием
  #6 (permalink)  
Старый 01.06.2015, 14:25
Аватар для qwe88
Кандидат Javascript-наук
Отправить личное сообщение для qwe88 Посмотреть профиль Найти все сообщения от qwe88
 
Регистрация: 14.06.2014
Сообщений: 137

А подскажите, пожалуйста, как добавить элемент не только после, но и до
Пробую так, но добавляет только до:
target.parentNode.insertBefore(new_elem, target.nextSibling);
    target.parentNode.insertBefore(new_elem, target.previousSibling);
Ответить с цитированием
  #7 (permalink)  
Старый 01.06.2015, 14:35
Аватар для qwe88
Кандидат Javascript-наук
Отправить личное сообщение для qwe88 Посмотреть профиль Найти все сообщения от qwe88
 
Регистрация: 14.06.2014
Сообщений: 137

В итоге создал второй for
Может есть способ проще?
Ответить с цитированием
  #8 (permalink)  
Старый 01.06.2015, 15:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

qwe88,
<!DOCTYPE HTML>

<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
</head>

<body>
    <h2>kfkdkd</h2>

    <h2>ww</h2>

    <script>
        var h = document.getElementsByTagName('h2'),
            target, new_elem;
            new_elem = document.createElement('div');
            new_elem.innerHTML = "baga";
        for (i = 0; i < h.length; i++) {
            target = h[i];
            target.parentNode.insertBefore(new_elem.cloneNode(true), target.nextSibling);
            target.parentNode.insertBefore(new_elem.cloneNode(true), target);
        }
    </script>

</body>

</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление HTML кода после элемента Гаджи jQuery 4 22.11.2014 04:33
Добавление border на IMG при наведении на div Thisishappi jQuery 4 17.05.2014 14:10
Открыть Div только после полной загрузки страницы xatan Общие вопросы Javascript 2 09.05.2014 06:33
Блокирование интерфейса. Добавление нового элемента vychmat Элементы интерфейса 5 20.03.2014 15:04
не закрывается DiV после загрузки в него файла sfumato jQuery 0 02.06.2011 21:05