- 締切済み
テキストの再表示
初めまして。 JavaScriptでのことで質問させていただきます。 ボタンと押された後に、HTMLのテーブル内のテキストの番号を再度振りなおしたいと思っています。 <table id="html"> <tr> <td colspan="2">項目aaa</td> </tr> <tr> <td id="list">NO.1</td> <td>あああああ</td> </tr> <tr> <td colspan="2">項目bbb</td> </tr> <tr> <td id="list">NO.3</td> <td>ううううう</td> </tr> <tr> <td id="list">NO.4</td> <td>えええええ</td> </tr> <tr> <td colspan="2">項目eee</td> </tr> <tr> <td id="list">NO.5</td> <td>おおおおお</td> </tr> <tr> <td id="list">NO.6</td> <td>かかかかか</td> </tr> <tr> <td id="list">NO.7</td> <td>ききききき</td> </tr> </table> というようなテーブルがあって、ボタンを押すとテーブル内に1行追加されるのですが、その際「NO.」を振りなおしたいのですがどのようにすればよいでしょうか? function insertItem() { var nCount = 0; for (nLoop = 0; nLoop < document.all.html.rows.length; nLoop++) { for (nCellLoop = 0; nCellLoop < document.all.html.rows(nLoop).cells.length; nCellLoop++) { document.all.html.rows(nLoop).cells(nCellLoop).innerText = "NO." + nCount; nCount++; } } } サイトを参考にし、上記のようなものはできたのですが実行すると すべてのセルが変更されてしまい、「項目aaa」や「あああああ」も 変更されてしまいます。 何かいい方法はありますでしょうか? よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
idはユニークにしかつけてはいいけません。 同じような属性ということならclassを指定します。 元ソースを活かしてかくとこんな感じになるでしょうか? <table id="html" border=1 > <tr> <td colspan="2">項目aaa</td> </tr> <tr> <td class="list">NO.1</td> <td>あああああ</td> </tr> <tr> <td colspan="2">項目bbb</td> </tr> <tr> <td class="list">NO.4</td> <td>ううううう</td> </tr> <tr> <td class="list">NO.5</td> <td>えええええ</td> </tr> <tr> <td colspan="2">項目eee</td> </tr> <tr> <td class="list">NO.6</td> <td>おおおおお</td> </tr> <tr> <td class="list">NO.7</td> <td>かかかかか</td> </tr> <tr> <td class="list">NO.8</td> <td>ききききき</td> </tr> </table> <form> <input type=button value="test" onClick="insertItem()"> </form> <script language=javascript> function insertItem() { var nCount = 1; for (nLoop = 0; nLoop < document.all.html.rows.length; nLoop++) { for (nCellLoop = 0; nCellLoop < document.all.html.rows(nLoop).cells.length; nCellLoop++) { if(document.all.html.rows(nLoop).cells(nCellLoop).className=="list"){ document.all.html.rows(nLoop).cells(nCellLoop).innerText = "NO." + nCount; nCount++; } } } } </script>
お礼
ご回答ありがとうございます。 教えていただいたものを参考にしたいと思います。 本当にありがとうございました。