アプリ版:「スタンプのみでお礼する」機能のリリースについて

テーブルのセルに特定の文字列を挿入する方法は御座いませんか?
例えば、
HTMLファイル
<html>
<head>
</head>
<body>
<table>
<tr><td> (1) </td><td> (2) </td></tr>
<tr><td> (3) </td><td> (4) </td></tr>
</table>
</body>
</html>
とあった場合

JavaScriptファルには
(1)に挿入する内容
(2)に挿入する内容
(3)に挿入する内容
(4)に挿入する内容
を書いてHTMLファイルに書き出しをしたいのです。
document.write('');を使って書き出す方法は知っていますが、指定した場所に貼り付けたい場合複数ファイルが必要になりますよね?
それでは不便なので、JavaScriptファルは外部化で1つのファイルにし、指定箇所に文字列を挿入する方法を教えてください。
printを使えばいいんでしょうか?

A 回答 (3件)

いちばん簡単なのはtdにidを振ることかなぁ



<html>
<head>
<script>
window.onload=function(){
document.getElementById("td1").innerHTML="1の変化後";
document.getElementById("td2").innerHTML="2の変化後";
document.getElementById("td3").innerHTML="3の変化後";
document.getElementById("td4").innerHTML="4の変化後";
}
</script>
</head>
<body>
<table>
<tr><td id="td1">(1)</td><td id="td2">(2)</td></tr>
<tr><td id="td3">(3)</td><td id="td4">(4)</td></tr>
</table>
</body>
</html>
    • good
    • 0
この回答へのお礼

早速回答ありがとうございます。
まさに私が求めていたものです。是非参考にさせていただきます。

お礼日時:2008/10/18 02:35

セルの内容の指定をわかりやすく、こんな感じでどうでしょう。



---

<html>
<head>
<script type="text/javascript"><!--
window.onload = function(){
var content = [
['(1)->(a)', '(2)->(b)'], // 1行目
['(3)->(c)', '(4)->(d)'] // 2行目
];
var tbl = document.getElementById('tbl');
var numOfRows = tbl.getElementsByTagName('tr').length;
var numOfCells = tbl.getElementsByTagName('tr')[0].getElementsByTagName('td').length;
for (var i = 0; i < numOfRows; i++) {
for (var j = 0; j < numOfCells; j++) {
var cell = tbl.getElementsByTagName('tr')[i].getElementsByTagName('td')[j]
cell.firstChild.nodeValue = content[i][j]; // この行をコメントアウトすれば変更前の表が表示されます
}
}
};
// --></script>
</head>
<body>
<table id="tbl">
<tr><td> (1) </td><td> (2) </td></tr>
<tr><td> (3) </td><td> (4) </td></tr>
</table>
</body>
</html>

この回答への補足

早速回答ありがとうございます。
こちらの場合ちょっと複雑なテーブルになるとJavaScriptの方が大変そうですね^^;なので、今回はNo2さんのを参考にさせていただく事になりました。

補足日時:2008/10/18 02:28
    • good
    • 0

こんな雰囲気のことでしょうか?



<html>
<head>
<script>
function change(){
var td = document.getElementById('test').getElementsByTagName('td');
for (var i=0; i<td.length; i++){
// 順番にn番目のtdはtd[n-1] :(添字は0からスタート)
td[i].innerHTML = (i+1)+"番を<br>変えてみました";
}
}
</script>
</head>

<body>
<table border=1 id="test">
<tr><td> (1) </td><td> (2) </td></tr>
<tr><td> (3) </td><td> (4) </td></tr>
</table>
<p>
<input type="button" onclick="change()" value="変更テスト">
</body>
</html>

この回答への補足

早速回答ありがとうございます。
求めてたのとちょっと違いました。
ボタンは付けるわけではなくただ単にJavaScriptに入力した内容をHTMLに飛ばして表示したかったんですよ。
なので、今回はNo2さんのを使う事にしました。

補足日時:2008/10/18 02:30
    • good
    • 0

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