プロが教える店舗&オフィスのセキュリティ対策術

下に書かれているjavascriptは縦6マス・横7マスで一番上のマスごとにはsun・mon・tue・wed・thu・fri・satと書かれ、その下の水曜日(wed)のマスから順に1~30まで一マスごとに数字を入れられ、sun・5・12・19・26は赤文字で書かれ、1より前のマスや30以降のマスは空欄のカレンダーを表示することができますが、この状態だとsun・5・12・19・26とそれらが書き込まれたマスが赤くなってしまいます。sun・5・12・19・26だけを赤くさせるにはどうすればいいとおもいますか?

<!DOCTYPE html>
<html lang="java">
<head>
<meta charset="utf-8">
<title>sample</title>
</head>
<body>
<script>
var youbi = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
var table=document.createElement("table");
table.setAttribute("border",1);
var tbody=document.createElement("tbody");
for(var i=0;i<6;i++){
var tr=document.createElement("tr");
for(var j=0;j<7;j++){
var td=document.createElement("td");
if (i == 0) {
var txt=youbi[j];
} else {
var txt=(i-1)*7+j-2;
if (txt < 1 || txt > 30) {
txt = "";
}
}
td.appendChild(document.createTextNode(txt));
if (j == 0) {
td.style.color='red';
}
tr.appendChild(td);
}
tbody.appendChild(tr);
}
table.appendChild(tbody);
document.getElementsByTagName("body")[0].appendChild(table);
</script>
</body>
</html>

A 回答 (3件)

----- ここから -----------


td.appendChild(document.createTextNode(txt));
if (j == 0) {
td.style.color='red';
}
tr.appendChild(td);
----- ここまでを -----------


----- ここから -----------
var oDiv=document.createElement("div");
oDiv.appendChild(document.createTextNode(txt));
if (j == 0) {
oDiv.style.color='red';
}
td.appendChild(oDiv);
tr.appendChild(td);
----- ここへ差替え -----------
    • good
    • 0
この回答へのお礼

ありがとう

無事に修正することができました。
ありがとうございました。

お礼日時:2015/12/11 13:48

<td> の下にもう一段 <span> を差し込み、style の範囲を狭める



var word = document.createElement('span');
word.appendChild(document.createTextNode(txt));
word.style.color = 'red';
td.appendChild(word);
    • good
    • 0
この回答へのお礼

ありがとう

お答えしていただきありがとうございました。
参考になりました。

お礼日時:2015/12/11 13:48

>sun・5・12・19・26だけを赤くさせるにはどうすればいいとおもいますか?


枠線が赤くならないようにしたいって意味でしょうか?

tdのborder-colorを明示的に指定しておけばいいとおもいます。
    • good
    • 0
この回答へのお礼

ありがとう

お答えしていただきありがとうございました。
参考になりました。

お礼日時:2015/12/11 13:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!