• 締切済み

テキストの再表示

初めまして。 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」や「あああああ」も 変更されてしまいます。 何かいい方法はありますでしょうか? よろしくお願いいたします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

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>

wonder_dct
質問者

お礼

ご回答ありがとうございます。 教えていただいたものを参考にしたいと思います。 本当にありがとうございました。

関連するQ&A