-3

I want to replace src from data-src and I have the script but it's not working properly. Please modify this given script.

This is the script which I want to load before loading images but it's not working properly so please fix this.

var region = document.getElementsByClassName("content");

if (region) {
  var img = region.getElementsByTagName("img");

  for (var i = 0; i < imgEl.length; i++) {
    if (imgEl[i].getAttribute('src')) {
      imgEl[i].setAttribute('data-src', imgEl[i].getAttribute('src'));
      imgEl[i].removeAttribute('src');
    }
  }
}
<div class='content'> <img src="img.jpg" alt="img"> </div>
Heretic Monkey
  • 11,687
  • 7
  • 53
  • 122
Tony
  • 11
  • 11

2 Answers2

0

A nice method for do that is using querySelectorAll for get a return of NodeList and can iterate with forEach callback, here an example:

var region = document.querySelectorAll(".content");

//console.log(region);

if (region) {

  region.forEach(function(element) {

    let img = element.querySelectorAll("img");

    img.forEach(function(elementx, index) {

      let x = elementx.getAttribute('src');

      if (x) {
        elementx.dataset.src = x;
        elementx.removeAttribute('src');
      }

    });

  });


}
<div class="content">

  <p>Abcd</p>
  <img src="something.jpg" />

  <p>Efgh</p>
  <img src="something2.jpg" />

  <p>Ijkl</p>
  <img src="something3.jpg" />

</div>

<div class="content">

  <p>Abcd</p>
  <img src="something4.jpg" />

  <p>Efgh</p>
  <img src="something5.jpg" />

  <p>Ijkl</p>
  <img src="something6.jpg" />

</div>
Heretic Monkey
  • 11,687
  • 7
  • 53
  • 122
-1
var region = document.getElementsByClassName("content");
​
for (var x = 0; x < region.length; x++) {
  var imgs = region[x].getElementsByTagName("img");
​
  for (var i = 0; i < imgs.length; i++) {
    if (imgs[i].getAttribute('src')) {
      imgs[i].setAttribute('data-src', imgs[i].getAttribute('src'));
      imgs[i].removeAttribute('src');
    }
  }
}
Junaid Hamza
  • 179
  • 3