I am trying to take color hex codes from an xml file and use the data to change the color of 20 divs. I have been quite lost and tried to pick apart a snippet of code i found and use for myself. I am getting console error cannot read property "innerhtml".
what am i doing wrong here?
html
<div class='container'> <div class='blah' id='1'>hello</div> <div class='blah' id='2'>hello</div> ........ <div class='blah' id='19'>hello</div> <div class='blah' id='20'>hello</div> </div> <input type="button" value="changediv" onclick="setTheColors()"> xml
<?xml version="1.0" encoding="UTF-8"?> <divcolors> <div name ="1"><color>#94fd05</color></div> <div name ="2"><color>#c8a522</color></div> .......... <div name ="19"><color>#66b013</color></div> <div name ="20"><color >#223fc5</color></div> </divcolors> javascript
function changeColors(xml) { var xmlDoc = xml.responseXML; var colorColor = xmlDoc.getElementsByTagName("div"); for (var i = 0; i < colorColor.length; i++){ var current = colorColor[i].getAttribute('name'); var theDiv = document.getElementById(current); theDiv.style.backgroundColor = colorColor[i].childNodes[0].nextSibling.innerHTML; } } function setTheColors(){ var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (xhttp.readyState == 4 && xhttp.status == 200) { changeColors(xhttp); } }; xhttp.open("GET", "divcolors.xml", true); xhttp.send(); } This line of code is giving me the console error:
theDiv.style.backgroundColor = colorColor[i].childNodes[0].nextSibling.innerHTML; quite lost on how to get this to work. have tried numerous things and nothing has worked. The only other thing I could get the code to do was not give me any console errors but do nothing at the same time.
No comments:
Post a Comment