Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const siteContent = {
  2.   "nav": {
  3.     "nav-item-1": "Services",
  4.     "nav-item-2": "Product",
  5.     "nav-item-3": "Vision",
  6.     "nav-item-4": "Features",
  7.     "nav-item-5": "About",
  8.     "nav-item-6": "Contact",
  9.     "img-src": "img/logo.png"
  10.   },
  11.   "cta": {
  12.     "h1": "DOM Is Awesome",
  13.     "button": "Get Started",
  14.     "img-src": "img/header-img.png"
  15.   },
  16.   "main-content": {
  17.     "features-h4":"Features",
  18.     "features-content": "Features content elementum magna eros, ac posuere elvit tempus et. Suspendisse vel tempus odio, in interdutm nisi. Suspendisse eu ornare nisl. Nullam convallis augue justo, at imperdiet metus scelerisque quis.",
  19.     "about-h4":"About",
  20.     "about-content": "About content elementum magna eros, ac posuere elvit tempus et. Suspendisse vel tempus odio, in interdutm nisi. Suspendisse eu ornare nisl. Nullam convallis augue justo, at imperdiet metus scelerisque quis.",
  21.     "middle-img-src": "img/mid-page-accent.jpg",
  22.     "services-h4":"Services",
  23.     "services-content": "Services content elementum magna eros, ac posuere elvit tempus et. Suspendisse vel tempus odio, in interdutm nisi. Suspendisse eu ornare nisl. Nullam convallis augue justo, at imperdiet metus scelerisque quis.",
  24.     "product-h4":"Product",
  25.     "product-content": "Product content elementum magna eros, ac posuere elvit tempus et. Suspendisse vel tempus odio, in interdutm nisi. Suspendisse eu ornare nisl. Nullam convallis augue justo, at imperdiet metus scelerisque quis.",
  26.     "vision-h4":"Vision",
  27.     "vision-content": "Vision content elementum magna eros, ac posuere elvit tempus et. Suspendisse vel tempus odio, in interdutm nisi. Suspendisse eu ornare nisl. Nullam convallis augue justo, at imperdiet metus scelerisque quis.",
  28.   },
  29.   "contact": {
  30.     "contact-h4" : "Contact",
  31.     "address" : "123 Way 456 Street Somewhere, USA",
  32.     "phone" : "1 (888) 888-8888",
  33.     "email" : "sales@greatidea.io",
  34.   },
  35.   "footer": {
  36.     "copyright" : "Copyright Great Idea! 2018"
  37.   },
  38. };
  39.  
  40. // Example: Update the img src for the logo
  41. let logo = document.getElementById("logo-img");
  42. logo.setAttribute('src', siteContent["nav"]["img-src"]);
  43.  
  44. const nav = document.querySelector('nav');
  45. [...nav.children].forEach((current, index) => {
  46.   current.innerHTML = siteContent['nav']['nav-item-' + (index + 1)];
  47. });
  48.  
  49. const ctaEl = document.querySelector('.cta > .cta-text');
  50. [...ctaEl.children].forEach((current, index) => {
  51.   current.innerHTML = siteContent['cta'][`${current.tagName.toLowerCase()}`];
  52.   if(current.tagName.toLowerCase() === 'h1') current.innerHTML = 'DOM<br />IS<br />AWESOME';
  53. });
  54.  
  55. let ctaImg = document.querySelector('#cta-img');
  56. ctaImg.src = siteContent['cta']['img-src'];
  57.  
  58. let mcKeys = ['features', 'about', 'services', 'product', 'vision'];
  59.  
  60. let mc1 = document.querySelectorAll('.text-content');
  61. [...mc1].forEach((current, index) => {
  62.   [...current.children].forEach((currentC, indexC) => {
  63.     currentC.innerHTML = siteContent['main-content'][`${mcKeys[index]}-${(indexC + 1) % 2 ? 'h4' : 'content'}`];
  64.   });
  65. });
  66.  
  67. let mc1Img = document.getElementById('middle-img');
  68. mc1Img.src = siteContent['main-content']['middle-img-src'];
  69.  
  70. const contactEls = document.querySelector('.contact').children;
  71. let contactCounter = 0;
  72. for(let key in siteContent['contact']) {
  73.   contactEls[contactCounter].innerHTML = siteContent['contact'][key];
  74.   contactCounter++;
  75. }
  76.  
  77. const footerEl = document.querySelector('footer p');
  78. footerEl.innerHTML = siteContent['footer']['copyright'];
  79.  
  80. // Task 3
  81.  
  82. let child1 = document.createElement('a');
  83. child1.innerHTML = 'Extra 1';
  84. let child2 = document.createElement('a');
  85. child2.innerHTML = 'Extra 2';
  86. nav.appendChild(child1);
  87. nav.appendChild(child2);
  88.  
  89. [...nav.children].forEach((current, index) => {
  90.   current.setAttribute('style', 'color: green');
  91. });
  92.  
  93. let eventButton = document.createElement('button');
  94. eventButton.innerHTML = 'Click Me!';
  95. eventButton.addEventListener('click', (event) => {
  96.   let aChild = document.createElement('a');
  97.   aChild.innerHTML = 'Events!';
  98.   nav.appendChild(aChild);
  99. });
  100. nav.appendChild(eventButton);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement