​​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 = 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 = ''; // ※削除 spans[i].className = ''; // ★追加 } } }
二行コメントアウトして、一行追加しています。