スクリプトの部分だけですが、こんな感じで。
window.onload = function() { var trs = document.getElementsByTagName("tr"); var need_mark = false; for (var i = 0 ; i < trs.length ; ++i) { var ans = trs[i].children.item(3) re_ans = new RegExp("^[" + ans.innerHTML + "]"); var ele_q = trs[i].children.item(2) var ele = ele_q.firstChild do { if (ele.nodeType == 3) { if (re_ans.exec(ele.nodeValue)) { need_mark = true; } } else if (ele.nodeType == 1 && ele.nodeName == "BR") { need_mark = false; } if (need_mark) { var wrap = document.createElement("span") wrap.style.backgroundColor = "#ffff00"; wrap.className = "answer_marker"; // ★目印 ele_q.insertBefore(wrap, ele); wrap.appendChild(ele); ele = wrap; } } while (ele = ele.nextSibling); } } // 装飾を消す処理です function erase_marker() { var spans = document.getElementsByTagName("SPAN"); for (var i = 0 ; i < spans.length ; ++i) { if (spans[i].className == "answer_marker") { spans[i].style.backgroundColor = ''; } } }
元々の window.onload の処理で背景色を黄色に指定した要素に目印(★)をつけておきます。
装飾を消す処理では、目印を頼りに要素を探して、background-color を「無し」にします。
関数名は、処理内容を表している方がメンテしやすいので、css() ではなく erase_marker() としました。