2017-01-11 2 views
0

Я пытаюсь добавить пользовательский html-код для adblock пользователей в div под названием «cfmonitor». В настоящее время я использую нижеуказанный сценарий.Как заменить innerHTML всех divs через getElementById

<script> 
    window.onload = function(){ 
    setTimeout(function() { 
     var ad = document.querySelector("ins.adsbygoogle"); 
      if (ad && ad.innerHTML.replace(/s/g, "").length == 0) { 
      ad.style.cssText = 'display:block !important'; 
       document.getElementById("cfmonitor").innerHTML = 'html code goes here'; 
     } 
    }, 500); 
    }; 
</script> 

Проблема. Этот код просто заменяет только первый cfmonitor div моим пользовательским html-кодом. У меня есть несколько divs «cfmonitor». Как я могу заменить все «cfmonitor» divs на свой собственный html-код? Пытался экспериментировать много, но не смог, любой может мне помочь?

+0

С ид вы не можете, потому что Javascript возвращает только первый элемент с Идентификатор id –

+0

использует 'querySelectorAll' вместо просто' querySelector', а затем циклически обрабатывает результаты, как если бы вы получили результат getElementsByTagName. – dandavis

+0

Можете ли вы изменить его для меня? Я не знаю, есть много знаний в кодировании. –

ответ

2

Вы должны использовать класс как и другие. И вам понадобится выполнить итерацию через массив возвращаемых элементов.

var elms = document.getElementsByClassName('cfmonitor'); 
for (var i = 0; i < elms.length; i++) { 
    elms[i].innerHTML = 'hi'; 
} 
+0

jquery помечен, поэтому цикл не нужен. –

+0

Спасибо человеку .. это действительно сработало :) –

+1

@Iwrestledabearonce. Довольно уверен, что OP, вероятно, считает, что jQuery и JS являются синонимами. – Stephen

1

Предлагаю переместить cfmonitor с идентификатора элемента в класс. Идентификаторы элементов также должны быть уникальными. Если вы сделаете это, вы можете изменить это:

<div class="cfmonitor">how</div> 
<div class="cfmonitor">are</div> 
<div class="cfmonitor">you</div> 

Для этого:

<div class="cfmonitor">GREAT!</div> 
<div class="cfmonitor">GREAT!</div> 
<div class="cfmonitor">GREAT!</div> 

С помощью этого кода (с помощью JQuery, так как вы помечать его)

$(".cfmonitor").html("GREAT!"); 
+0

OP уже использовал классы ... (код говорит громче, чем заголовки) – dandavis

+0

Спасибо за ответ, попробовал этот код, похоже, не работает –

+0

-2

Если бы лучше, если вы используете имена Id (s) на дивы, а затем подключить JavaScript, используя getElementById

<div id="first_div">THIS IS THE WORDING YOU WANT TO CHANGE</div> 
<div id="first_div">THIS IS THE WORDING YOU WANT TO CHANGE</div> 
<div id="first_div">THIS IS THE WORDING YOU WANT TO CHANGE</div> 



<script> 
document.getElementById('first_div').innerHTML = "Change Text to the following "; 
</script> 
+1

У вас не может быть несколько элементов с одним и тем же атрибутом 'id'! – wscourge

Смежные вопросы