0

Please I want to get the HTML contents of many div with the same id this is my code:

<div id="my_div">This is content I</div>
<div id="my_div">This is content J</div>
<div id="my_div">This is content P</div>
<div id="my_div">This is content Z</div>

And this is my jQuery code:

document.getElementById('my_div').innerHTML;

But it only gives me the contents of one div. eg This is content I. This is what I really want This is content IThis is content JThis is content PThis is content Z. Please how do I run my code?

KANAYO AUGUSTIN UG
  • 2,078
  • 3
  • 17
  • 31

3 Answers3

1

Start with:

<div class="my_div">This is content I</div>
<div class="my_div">This is content J</div>
<div class="my_div">This is content P</div>
<div class="my_div">This is content Z</div>

Then use a jQuery .each on a selector of .my_div. See answer from Dhara Parmar

$(".my_div").each(function( index ) {
    console.log( index + ": " + $( this ).html() );
});

Will show you the results and then finally, concatenate in a loop.

Peter Smith
  • 5,528
  • 8
  • 51
  • 77
1

add same class to all div: Try this:

<div class="my_div">This is content I</div>
<div class="my_div">This is content J</div>
<div class="my_div">This is content P</div>
<div class="my_div">This is content Z</div>

var str ="";
 $(".my_div").each(function() {
    str = str + $(this).html() + " ";
 })
 alert(str)
Dhara Parmar
  • 8,021
  • 1
  • 16
  • 27
0

Change your html to use class instead of id :

<div class="my_div">This is content I</div>
<div class="my_div">This is content J</div>
<div class="my_div">This is content P</div>
<div class="my_div">This is content Z</div>

And the loop through its values to get each one of them:

function showDivValues(){
    var length = document.getElementsByClassName('my_div').length;

    for(var i = 0; i < length; i++){
         console.log(document.getElementsByClassName('my_div')[i].innerHTML);
    }
}
DCruz22
  • 806
  • 1
  • 9
  • 18