javascriptの質問です

http://q.hatena.ne.jp/1378611724 にて以下のプログラムを作っていただきました
以下のプログラムはjavascript単体で、色がつくように設定してもらっていますが
そうではなく
cssに .answer_marker(background-color:#ffff00) を指定しておいて
answer_marker クラス の有無で色を付ける付けないという風にして欲しいのですが
どこを書き換えればよいのでしょうか?
よろしくお願いします

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/11/25 02:37:33
  • 終了:2013/12/02 02:40:03
id:takanii
​​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 = &#8203;&#8203;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 = '';
        }
    }
}

回答(1件)

id:takanii

質問文を編集しました。詳細はこちら

id:a-kuma3 No.1

a-kuma3回答回数4412ベストアンサー獲得回数18032013/11/25 08:45:19

ポイント300pt

こんな感じになると思います。

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 = '';        // ★追加
        }
    }
}

二行コメントアウトして、一行追加しています。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません