Как обернуть элемент в тег — JavaScript

Например, обернем картинку в div с классом my-image.


<p>
<img id="photo" src="/images/photo.jpg" />
</p>


var image_code = document.getElementById('photo').parentElement.innerHTML; // получаем html код внутри родительского элемента
document.getElementById('photo').parentElement.innerHTML = '<div class="my-image">' + image_code + '</div>';

Как перебрать HTMLCollection с помощью forEach?

HTMLCollection — это объект, ведущий себя подобно массиву. Например, чтобы получить один элемент коллекции, можно обратиться как к элементу массива по индексу:

<a href="link1">Link 1</a>
<a href="link2">Link 2</a>
var links = document.getElementsByTagName('a'); //HTMLCollection
alert(links[0]);

Но перебрать коллекцию как массив уже не получится:

links.forEach(function(link, i, links) {
    alert(link);
}); 

Чтобы получилось, нужно получить массив из HTMLCollection перед проходом:

var links_as_arr = Array.from(links);
links_as_arr.forEach(function(link, i, links_as_arr) {
    alert(link);
}); 

Или использовать один из следующих вариантов.

Подлиннее:

Array.prototype.forEach.call(links, function(link) {
    alert(link);
});

Покороче:

[].forEach.call(links, function(link) {
    alert(link);
});