Objective
Reason
Issues
Code so far
var newClass = document.getElementsByTagName('p')
var length = newClass.length;
for (var i = 0; i < length; i++) {
newClass[i].className = newClass[i].className + "font--weight"
}
let pAll = document.querySelector('p.font--weight');
let calcStyles = window.getComputedStyle(pAll);
pAll.textContent = 'My computed font-weight is ' + calcStyles.getPropertyValue('font-weight');
pAll.innerHTML = '<span>' + pAll.textContent + '</span>';
Use el.querySelectorAll()
to get the nodeList, el.querySelector()
will return the first node of the selector only. Then you just need to use getComputedStyle(selector).getPropertyValue('style')
to get the computed style. From there is just concatenating the strings together and setting the innerHTML or textContent to the string.
Once you have the nodeList, run the elements through a loop to get each one.
let pTagClass = document.querySelectorAll('.check-weight')
function getFontWeight(els) {
els.forEach(weight => {
// weight now represents each individual node in
// our nodeList that was passed into the function
let compStyle = getComputedStyle(weight).getPropertyValue('font-weight');
let str = `<span class="bookmark">font-weight is: ${compStyle},</span>`
let currentText = weight.textContent
weight.innerHTML = `${str} ${currentText}`
})
}
getFontWeight(pTagClass)
.check-weight {
font-family: "Bahnschrift", sans-serif;
}
.heavy {
font-weight: bold;
}
.normal {
font-weight: normal;
}
.light {
font-weight: lighter;
}
.bookmark {
font-weight: normal;
font-size: smaller;
background-color: yellow;
padding: 2px;
}
<p class="heavy check-weight">This is a heavy weight</p>
<p class="heavy check-weight">This is also a heavy weight</p>
<p class="light check-weight">This is a light weight</p>
<p class="normal check-weight">This is normal</p>