JavaScript & DHTML Cookbook by Danny Goodman The following errata were *corrected* in the 10/05 reprint of "JavaScript & DHTML Cookbook": Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem (3) second code line after the first full paragraph; var re = new RegExp(["pattern", ["g "| "i" | "gi"]]); NOW READS: var re = new RegExp(["pattern", ["g"| "i" | "gi"]]); {311} line 24; if (ol.childNodes[i].childNodes.length > 0 && ol.childNodes[i].childNodes[ol.childNodes[i].childNodes.length -1].nodeType childNodes[i].childNodes.length - 1].nodeType_ == 3) { ol.childNodes[i].removeChild(ol.childNodes[i].childNodes[ ol.childNodes[i].childNodes.length- 1]); } NOW READS: if (ol.childNodes[i].childNodes.length > 0 && ol.childNodes[i].childNodes[ol.childNodes[i].childNodes.length - 1].nodeType == 3) { ol.childNodes[i].removeChild(ol.childNodes[i].childNodes[ ol.childNodes[i].childNodes.length - 1]); } [434] code under 2nd paragraph txt = document.createTextNode(oneRecord.getElementsbyTagName("year")[0]. firstChild.appendChild.nodeValue); NOW READS: txt = document.createTextNode(jsData[i].year);