- ベストアンサー
HTMLのテキストノード部分を変更するには?
<table> <tr><td>あああ<span>いいい</span></td></tr> </table> 上記のようなHTMLについて、 「あああ」のテキストノード部分のみを 「ううう」というように別の文字列へJavaScriptを用いて変更するには どのような方法が考えられるでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
・ 以下のコードを参考にしてみてください。 ------------------------------------------------------------ <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>
その他の回答 (2)
- auty
- ベストアンサー率58% (284/486)
・ 勘違いがありました。 window.onload = function() { var cell = document.getElementById("Table1").rows[0].cells[0]; alert(cell.firstChild.data); cell.firstChild.data = "ううう"; alert(cell.firstChild.data); }
お礼
お礼はNo2にまとめさせていただきました。 ありがとうございました。
- public_sa
- ベストアンサー率52% (13/25)
<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使うしか無いんじゃないかな。。。
お礼
質問文のHTMLに記述しました<td>要素は "あああ"というテキストノードと <span>というエレメントを持っています。 変更したいのは<span>要素内ではなく、 <td>要素内のテキストノード部分のみ(すなわち「あああ」部分)を変更するにはどうすればよいかという質問です。 回答ありがとうございました。
お礼
dataというプロパティがあるのですね。知りませんでした。 自分でも少し調べていたところ、nodeValueというのも使えることがわかりました。 いまいちdataとnodeValueの違いがわかりませんが‥。 nodeValueはDOMの中で定義され、 dataはHTML(ブラウザ)の歴史の中で生まれたものってところでしょうか?自分の勝手な解釈ですが。 とにかく、おかげさまで本質問は解決しました。 ありがとうございました。