A collection of little JavaScript hacks.
Note that you can play with JavaScript at Mozilla's MDN Playground or more commercial options like JSFiddle or Scrimba
Pull headings out of a page[edit]
Array.from(document.getElementsByTagName("h1")).forEach(function (item) { console.log(item.textContent); });
Using the browser's developer console, you can pop this one-liner in to see the list of headings in your web page.
document.getElementsByTagName("h1")
returns an HTMLCollection from the DOM.- The
Array.from()
converts the HTMLCollection NodeList into an actual array. - The forEach loop creates an anonymous function to handle each
item
in the array. - We
console.log()
it to see the values; and use thetextContent
property instead ofinnerHTML
since the latter would almost certainly be 'messy'. (In other words, innerHTML would contain far more than what we want - which is just the text of the headings).
A little different approach would be to build up the text content instead of dumping it to the console on each iteration
const headings = document.getElementsByTagName("h3");
let result = '';
for (let i = 0; i < headings.length; i++) {
result += `\n ${headings[i].textContent }`;
}
console.log(result);
Here's another example, using querySelector()
and querySelectorAll()
with class names
const container = document.querySelector( ".NavigationItem-items-container");
const mainProducts = container.querySelectorAll( ".NavigationGroup-title, .NavigationLink-title");
let result = '';
for (let i = 0; i < mainProducts.length; i++) {
result += `\n ${mainProducts[i].textContent.trim()}`;
}
console.log(result);
Or the same exact example, used on a Testdox HTML report to list all the elements with CSS class "defect"
const bugs = document.querySelectorAll(".defect");
let result = '';
for (let i = 0; i < bugs.length; i++) {
result += `\n ${bugs[i].textContent.trim()}`;
}
console.log(result);