2009-03-25 2 views
63

ウェブブラウザでDOM textNodeの値を変更する方法はありますか?textNodeの値を変更する

は、私は、特に私が変更既存のノードではなく、新しいものを作ることができるかどうか見てみたいです。

明確にするために、私はJavascriptでこれを行う必要があります。ブラウザのすべてのテキストは、他のHTMLノードの子である#textNodesに格納されますが、独自の子ノードを持つことはできません。

下記のように、コンテンツはこれらのオブジェクトのnodeValueプロパティを設定することによって変更できます。私はinnerHTMLのは、このために使用されていると信じて

+0

HTMLの例&変更したいのは?あなたはjavascriptを使ってやりたいですか? – shahkalpesh

答えて

94

あなたはタイプの#textの特定のノードを(持っている場合)とあなたがnodeValueプロパティを使用することができ、その値を変更したい:

node.nodeValue="new value"; 

注:

のinnerText(およびおそらくのTextContent)現在のノードとすべての子孫ノードの両方のテキストを返す/設定するので、あなたが望む/期待する動作ではないかもしれません。

+1

はい、nodeValueはこれに最適です。 textContentは#Elementと#textノードの両方で使用されていましたが、innerTextとtextContentは異なります。IE(作成したinnerText)は#textノードでそれをサポートしません(テキスト化する子ノードがないため)。 –

+4

Text(CDATASectionとCommentだけでなく)にも 'nodeValue'の略語として 'data'があります。 – bobince

+0

nodeValueは必要なものです。何らかの理由で私はそれが読み取り専用だと思ったが、FF3とIE7で動作するようだ。ありがとう! – levik

-4

は...その後、再び、それが承認されたW3Cではありません...しかし、それは動作します...

node.innerHTML="new value"; 
+1

+1です。 nodeValueは要素の内容を置き換えることはできません – petermeissner

+3

「innerHTML」は決して読み書き*と書込みの両方でテキストを扱うべきではありません。 – John

+2

@petermeissner:これは質問に答えません。親要素ではなく、テキストノードに 'nodeValue'を設定する必要があります。 –