Google Chrome delete item Delete item

I am trying to remove an element from a div on a third party website.

For instance,

<div id="full_size_photo">
  <img src="img1">
  <img src="img2">
</div>


var imageDiv  = document.getElementById("full_size_photo");
imageDiv.removeChild(imageDiv.childNodes[i]);

imageDiv apparently has 5 children ?: S When I 1 img1 is removed properly. When I delete 3 and 4 img2 is deleted ...

Can anyone explain why this is?

As I understand it, I thought the first img tag would be 0 and the second would be 1?

+3
source share
2 answers

Spaces are stretched textNodeinstances

Annotated example:

<div id="full_size_photo">[node 1 --
--]<img src="img1">[node 3 --
--]<img src="img2">[node 5 --
]</div>

Here is what you really want to do:

var div = document.getElementById("full_size_photo");
var images = div.getElementsByTagName("img");
div.removeChild(images[0]);

Hope this helps!

+1
source

Most likely, text nodes between nodes imgare what disconnects you. Try something like this:

var imgList = imageDiv.getElementsByTagName('img');
for (var i = imgList.length - 1; i >= 0; i--) {
  imageDiv.removeChild(imgList[i]);
}

:

  • img,
  • , ( node 1 2, node, 2, 1, ).
0

Source: https://habr.com/ru/post/1746042/


All Articles