function bの中身をaの最後に追加して実行しましたが動きませんでした
function a 最後が、このように記載されているのが、とても気になります。
wrap.appendChild(ele); ele = wrap; }} while (ele = ele.nextSibling);}}
function b の中身を以下のように追加していますか?
wrap.appendChild(ele); ele = wrap; }} while (ele = ele.nextSibling);} // ★ var box = document.querySelectorAll("td:nth-child(6)"); for ( var i = 0; i < box.length; i++ ) { box [i].style.color = '#ffffff'; } // ★ } // ★
コメントで「★」を入れている辺りの、閉じる中括弧の数をとか、開くところとの対応を確認してください。
余計なおせっかいかもしれませんが、中括弧の書き方のスタイルが良くないです。
中括弧は処理のブロックを表すので、開始と終了がはっきりしていて、入れ子になっているのが分かるように、インデントを入れた方が良いと思います。
インデントの空白は質問のエリアに書いたために消えているのでしょうが、閉じる中括弧が連続して書かれていることが、ミスを誘発します。
function a_and_b() { /* function a() */ var trs = document.getElementsByTagName("tr"); var need_mark = false; for (var i = 0 ; i < trs.length ; ++i) { var ans = trs[i].children.item(5); 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 = "#ffffff"; wrap.className = "answer_marker"; ele_q.insertBefore(wrap, ele); wrap.appendChild(ele); ele = wrap; } } while (ele = ele.nextSibling); } /* function b () */ var box = document.querySelectorAll("td:nth-child(6)"); for ( var i = 0; i < box.length; i++ ) { box [i].style.color = '#ffffff'; } }