http://q.hatena.ne.jp/1378611724 にて以下のプログラムを作っていただきました
以下のプログラムはjavascript単体で、色がつくように設定してもらっていますが
そうではなく
cssに .answer_marker(background-color:#ffff00) を指定しておいて
answer_marker クラス の有無で色を付ける付けないという風にして欲しいのですが
どこを書き換えればよいのでしょうか?
よろしくお願いします
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 = ''; // ★追加 } } }
二行コメントアウトして、一行追加しています。
コメント(0件)