Wrap element snippet

I’ve found myself needing to do this on a couple of projects lately so it seemed like a good idea to write it down here as a snippet to reference later.

This sort of a vanilla replacement for jQuery’s .wrap() method

* Helper function to wrap one element with a new element
* @param {String} wrapWith - the name the element to create as the wrapper
* @param {Element} toWrap - The existing element to wrap
* @param {Object} attributes - An object of key value pairs used to create HTML attributes

function wrap(wrapWith, toWrap, attributes) {
const wrapperElement = document.createElement(wrapWith);
if (attributes) {
for (let attr in attributes) {
wrapperElement.setAttribute(attr, attributes[attr])
toWrap.parentNode.insertBefore(wrapperElement, toWrap)
Post tags