• ベストアンサー

HTMLのテキストノード部分を変更するには?

<table> <tr><td>あああ<span>いいい</span></td></tr> </table> 上記のようなHTMLについて、 「あああ」のテキストノード部分のみを 「ううう」というように別の文字列へJavaScriptを用いて変更するには どのような方法が考えられるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • auty
  • ベストアンサー率58% (284/486)
回答No.2

・ 以下のコードを参考にしてみてください。 ------------------------------------------------------------ <html> <head> <title></title> <script type="text/javascript"> window.onload = function() { var cell = document.getElementById("Table1").rows[0].cells[0]; alert(cell.firstChild.data); } </script> </head> <body> <table id="Table1" border="1"> <tr><td>あああ<span>いいい</span></td></tr> </table> </body> </html>

kyonn2008
質問者

お礼

dataというプロパティがあるのですね。知りませんでした。 自分でも少し調べていたところ、nodeValueというのも使えることがわかりました。 いまいちdataとnodeValueの違いがわかりませんが‥。 nodeValueはDOMの中で定義され、 dataはHTML(ブラウザ)の歴史の中で生まれたものってところでしょうか?自分の勝手な解釈ですが。 とにかく、おかげさまで本質問は解決しました。 ありがとうございました。

その他の回答 (2)

  • auty
  • ベストアンサー率58% (284/486)
回答No.3

・ 勘違いがありました。 window.onload = function() { var cell = document.getElementById("Table1").rows[0].cells[0]; alert(cell.firstChild.data); cell.firstChild.data = "ううう"; alert(cell.firstChild.data); }

kyonn2008
質問者

お礼

お礼はNo2にまとめさせていただきました。 ありがとうございました。

  • public_sa
  • ベストアンサー率52% (13/25)
回答No.1

<html> <head> <script> <!-- function changeSpanText(){ var span = document.getElementById("a"); var str = span.innerHTML; if (str == "aaa") span.innerHTML = "bbb"; else span.innerHTML = "aaa"; } //--> </script> </style> </head> <body> <span id="a">aaa</span> <button onclick="javascript:changeSpanText();">change!</button> </body> </html> って事じゃなくって? でも<form>使っても<span>じゃ elementととして取得できないし。 id使うしか無いんじゃないかな。。。

kyonn2008
質問者

お礼

質問文のHTMLに記述しました<td>要素は "あああ"というテキストノードと <span>というエレメントを持っています。 変更したいのは<span>要素内ではなく、 <td>要素内のテキストノード部分のみ(すなわち「あああ」部分)を変更するにはどうすればよいかという質問です。 回答ありがとうございました。

関連するQ&A