Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Нужна помощь новичку (https://javascript.ru/forum/events/63466-nuzhna-pomoshh-novichku.html)

shellddor 09.06.2016 09:54

Нужна помощь новичку
 
Всем доброго времени суток!
Столкнулся с такой проблемой: есть скрипт, который добавляет определенную кнопку в сайт в зависимости от устройства

<script>
                if(isMobile.any()){
                    var frm = document.createElement('form');
                    frm.setAttribute('action', 'tel: +78005558474');
                    frm.setAttribute('id', 'frm')
                    document.getElementById('knopka').appendChild(frm);
                    document.getElementById('knopka2').appendChild(frm);
                    var btn = document.createElement('button');
                    btn.className = "btn btn-primary btn-lg btn-block";
                    btn.innerHTML = "Позвонить";
                    btn.setAttribute('tupe', 'sumbit');
                    document.getElementById('frm').appendChild(btn);
                }else if(isMobile.iPad() || isMobile.iPod()){
                    var btn = document.createElement('button');
                    btn.className = "btn btn-primary btn-lg btn-block";
                    btn.innerHTML = "Позвонить";
                    btn.setAttribute('data-toggle', 'modal');
                    btn.setAttribute('data-target', '#IOS');
                    document.getElementById('knopka').appendChild(btn);
                }else{
                    var btn = document.createElement('button');
                    btn.className = "btn btn-primary btn-lg btn-block";
                    btn.innerHTML = "Позвонить";
                    btn.setAttribute('data-toggle', 'modal');
                    btn.setAttribute('data-target', '#others');
                    document.getElementById('knopka').appendChild(btn);
                }
            </script>

кнопка добавляется в div с определенным id. Таких дивов несколько на странице. В первый див кнопка добавляется как надо, но вот в последующие дивы добавятся не хочет. Собственно вопрос: почему и как это исправить?

рони 09.06.2016 12:42

shellddor,
id уникально!!! и нужен цикл по всем дивам

shellddor 09.06.2016 12:59

Цитата:

Сообщение от рони (Сообщение 418882)
shellddor,
id уникально!!! и нужен цикл по всем дивам

C ID сглупил :)
По поводу цикла: получается надо будет перебирать все дивы и при нахождении дива с определенным классом помещать в него кнопку. Так?
Напиши, пожалуйста, примерную конструкцию цикла.

рони 09.06.2016 13:24

Цитата:

Сообщение от shellddor
примерную конструкцию цикла.

[].forEach.call( document.querySelectorAll('.knopka'), function(el,i) {
        if(isMobile.any()){
                    var frm = document.createElement('form');
                    frm.setAttribute('action', 'tel: +78005558474');
                    //frm.setAttribute('id', 'frm')
                    el.appendChild(frm);
                    document.querySelectorAll('.knopka2')[i].appendChild(frm);
                    var btn = document.createElement('button');
                    btn.className = "btn btn-primary btn-lg btn-block";
                    btn.innerHTML = "Позвонить";
                    btn.setAttribute('tupe', 'sumbit');
                    frm.appendChild(btn);
                }else if(isMobile.iPad() || isMobile.iPod()){
                    var btn = document.createElement('button');
                    btn.className = "btn btn-primary btn-lg btn-block";
                    btn.innerHTML = "Позвонить";
                    btn.setAttribute('data-toggle', 'modal');
                    btn.setAttribute('data-target', '#IOS');
                    el.appendChild(btn);
                }else{
                    var btn = document.createElement('button');
                    btn.className = "btn btn-primary btn-lg btn-block";
                    btn.innerHTML = "Позвонить";
                    btn.setAttribute('data-toggle', 'modal');
                    btn.setAttribute('data-target', '#others');
                    el.appendChild(btn);
                }

 });

shellddor 09.06.2016 14:25

Все работает отлично. Спасибо большое.


Часовой пояс GMT +3, время: 15:25.