*I am trying to figure out the use of these functions. Anybody knows Why they are used and Can you give me an example with an HTML tag? Thanks in advance
Your code so far
var collapseDivs, collapseLinks;
Function createDocumentStructure (tagName) {
Se (Document. GetElementsByTagName) {
var elements = document.getElementsByTagName(tagName);
collapseDivs = new Array(elements.length);
collapseLinks = new Array(elements.length);
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
var siblingContainer;
if (document.createElement &&
(siblingContainer = document.createElement('div')) &&
siblingContainer.style)
{
var nextSibling = element.nextSibling;
element.parentNode.insertBefore(siblingContainer, nextSibling);
var nextElement = elements[i + 1];
while (nextSibling != nextElement && nextSibling != null) {
var toMove = nextSibling;
nextSibling = nextSibling.nextSibling;
siblingContainer.appendChild(toMove);
}
siblingContainer.style.display = 'none';
collapseDivs[i] = siblingContainer;
createCollapseLink(element, siblingContainer, i);
}
else {
// no dynamic creation of elements possible
return;
}
}
createCollapseExpandAll(elements[0]);
}
}
Function createCollapseLink (elemento, siblingContainer, index) {
portata di var;
Se (document.createElement & & (span = {document.createElement('span')))
span.appendChild(document.createTextNode(String.fromCharCode(160)));
var link = document.createElement('a');
link.collapseDiv = siblingContainer;
link.href = '#';
link.appendChild(document.createTextNode('expand'));
link.onclick = collapseExpandLink;
collapseLinks[index] = link;
span.appendChild(link);
element.appendChild(span);
}
}
Function collapseExpandLink (evt) {
Se (this.collapseDiv.style.display = = ') {
this.parentNode.parentNode.nextSibling.style.display = 'none';
this.firstChild.nodeValue = 'expand';
}
else {
this.parentNode.parentNode.nextSibling.style.display = '';
this.firstChild.nodeValue = 'collapse';
}
Se (evt & & evt. preventDefault) {
evt.preventDefault();
}
restituire false;
}
Function createCollapseExpandAll (firstElement) {
var div;
Se (document.createElement & & (div = {document.createElement('div')))
var link = document.createElement('a');
link.href = '#';
link.appendChild(document.createTextNode('expand all'));
link.onclick = expandAll;
div.appendChild(link);
div.appendChild(document.createTextNode(' '));
link = document.createElement('a');
link.href = '#';
link.appendChild(document.createTextNode('collapse all'));
link.onclick = collapseAll;
div.appendChild(link);
firstElement.parentNode.insertBefore(div, firstElement);
}
}
Function expandAll (evt) {
per (var i = 0; i < collapseDivs.length; i + +) {
collapseDivs[i].style.display = '';
collapseLinks[i].firstChild.nodeValue = 'collapse';
}
Se (evt & & evt. preventDefault) {
evt.preventDefault();
}
restituire false;
}
Function collapseAll (evt) {
per (var i = 0; i < collapseDivs.length; i + +) {
collapseDivs[i].style.display = 'none';
collapseLinks[i].firstChild.nodeValue = 'expand';
}
Se (evt & & evt. preventDefault) {
evt.preventDefault();
}
restituire false;
}
< / script >
< script type = "text/javascript" >
Window. onLoad = function (evt) {
createDocumentStructure('h1');
}
< / script >
Your browser information:
Your Browser User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
.
Link to the challenge:
https://www.freecodecamp.org/challenges/chaining-if-else-statements