javascriptの質問です

<HTML><script>
window.onload = function() {
var trs = document.getElementsByTagName("tr");
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)) {
var wrap = document.createElement("span")
wrap.style.backgroundColor = "#ffff00";
ele_q.insertBefore(wrap, ele);
wrap.appendChild(ele);
ele = wrap;
}
}
} while (ele = ele.nextSibling);
}
}
</script>
<body><table border="1">
<tr>
<td>第1回</td>
<td>1問目</td>
<td>赤いものはどれか<BR> <BR><BR>a <I>りんご</I><BR>b <I>みかん</I><BR>c <I>いちご</I><BR>d <I>郵便ポスト</I><BR>e <I>消防車</I><BR></td>
<td>acde</td>
</tr>
<tr>
<td>第1回</td>
<td>2問目</td>
<td>オレンジ色のものはどれか<BR> <BR>a りんご<BR>b みかん<BR>c いちご<BR>d 郵便ポスト<BR>e 消防車<BR></td>
<td>b</td>
</tr>
</table></body></html>

というhtmlを実行したのですが
第一回 1問目 の問題の斜線の選択肢は黄色になりません。
javascriptのどこを変えたら斜線部分も黄色になるのでしょうか?

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/09/08 02:35:41
  • 終了:2013/09/08 11:33:33

ベストアンサー

id:a-kuma3 No.2

a-kuma3回答回数4462ベストアンサー獲得回数18412013/09/08 10:38:26

ポイント152pt

前の質問と考え方は同じで、先頭のスクリプト部分を差し込んでください。
黄色にする文字を見つけてから、次の <BR> が出てくるまで黄色にするようにしてみました。

<HTML>
<!-- ここから -->
<script>
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";
                ele_q.insertBefore(wrap, ele);
                wrap.appendChild(ele);
                ele = wrap;
            }
        } while (ele = ele.nextSibling);
    }
}
</script>
<!-- ここまでを追加します -->
<body><table border="1">
<tr>
<td>第1回</td>
<td>1問目</td>
<td>赤いものはどれか<BR> <BR><BR>a <I>りんご</I><BR>b <I>みかん</I><BR>c <I>いちご</I><BR>d <I>郵便ポスト</I><BR>e <I>消防車</I><BR></td>
<td>acde</td>
</tr>
<tr>
<td>第1回</td>
<td>2問目</td>
<td>オレンジ色のものはどれか<BR> <BR>a りんご<BR>b みかん<BR>c いちご<BR>d 郵便ポスト<BR>e 消防車<BR></td>
<td>b</td>
</tr>
</table></body></html>

その他の回答(1件)

id:gatchan No.1

gatchan回答回数9ベストアンサー獲得回数12013/09/08 09:07:35

ポイント48pt

コードがいったい何をしたいのか...

黄色にするだけなら
http://jsfiddle.net/vTDZD/
因みに、↑はdocument上のタグi全てを対象としてます

id:a-kuma3 No.2

a-kuma3回答回数4462ベストアンサー獲得回数18412013/09/08 10:38:26ここでベストアンサー

ポイント152pt

前の質問と考え方は同じで、先頭のスクリプト部分を差し込んでください。
黄色にする文字を見つけてから、次の <BR> が出てくるまで黄色にするようにしてみました。

<HTML>
<!-- ここから -->
<script>
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";
                ele_q.insertBefore(wrap, ele);
                wrap.appendChild(ele);
                ele = wrap;
            }
        } while (ele = ele.nextSibling);
    }
}
</script>
<!-- ここまでを追加します -->
<body><table border="1">
<tr>
<td>第1回</td>
<td>1問目</td>
<td>赤いものはどれか<BR> <BR><BR>a <I>りんご</I><BR>b <I>みかん</I><BR>c <I>いちご</I><BR>d <I>郵便ポスト</I><BR>e <I>消防車</I><BR></td>
<td>acde</td>
</tr>
<tr>
<td>第1回</td>
<td>2問目</td>
<td>オレンジ色のものはどれか<BR> <BR>a りんご<BR>b みかん<BR>c いちご<BR>d 郵便ポスト<BR>e 消防車<BR></td>
<td>b</td>
</tr>
</table></body></html>

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

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

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

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

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